agent: add test coverage for AgentReconciler
agent: remove unnecessary method receiver
*: split out reconciler behaviour into pkg

Since the agent and the engine now share identical code for their
Reconcilers - and the main loop is quite critical - I think it's worth
sharing the code and giving its own set of tests.
agent: revert DefaultReconcileInterval
Merge pull request #805 from jonboulle/reconciler_tests

pkg: split out PeriodicReconciler from agent/engine, add tests