agent: add test coverage for AgentReconciler

Breaking out Reconcile doesn't feel right. It seems like what you really want is an AgentReconciler, which encapsulates everything you need to call `Reconcile()` (note there are *no* arguments) and an AgentReconcilerRunner which has `Run(stop chan struct{})`. We can make AgentReconciler an interface so you can mock it out for testing. Eh?