Investigate possible reconciler refactor to simplify code and improve testing in gitlab-agent
MR: Pending
## Description
The reconciler class in the agent handles a lot of complex logic and has a single entry point method. This may be warranted given the complexity of its operations, but this also makes tests difficult to write and makes covering code in tests a chore. It is possible we could break the reconciler further apart and have unit tests on the broken dependent objects to reduce the work needed to test the reconciler on both happy/sad paths. Let's look into this.
## Acceptance Criteria
- [ ] Investigate possible code refactorings in the reconciler object
- [ ] If refactor is feasible, draft up a plan to approach refactor
<!-- Replace with other type, e.g. bug or maintenance, if appropriate -->
<!-- Replace with other subtype if appropriate -->
<!-- By default, all issues start in the unprioritized status. See https://handbook.gitlab.com/handbook/engineering/development/dev/create/remote-development/#-planning-process -->
<!-- For simplicity and to avoid triage bot warnings about missing workflow labels, we will default to issues starting at the refinement phase -->
issue