Split reconciler.parseAndUpdate into parse and update methods.
Move handling of non-blocking errors and webhook GVK updates out to the Reconcile method.
Combine parse and parseSource methods.
Wrap some of the cache fields in a parseResult, to make it clear that those fields are updated atomicly and make a namespace to simplify method names related to parsing.
Move GVK set building to a parseResult.GVKs method, instead of passing all the objects to webhook.Update.
Update some of the unit tests to test just the parse method.
I want to do more to clean up cacheForCommit, to add updateResult, and split sourceResult into fetchResult and renderResult, but this seems like enough for one PR.
Needs approval from an approver in each of these files:
- ~~[OWNERS](https://github.com/GoogleContainerTools/kpt-config-sync/blob/main/OWNERS)~~ [nan-yu]
Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
I want to do more to clean up cacheForCommit, to add updateResult, and split sourceResult into fetchResult and renderResult, but this seems like enough for one PR.