Better task reconciliation

- fixes an issue where the REST API is still catching up on task reports and Singularity startup considers them lost
- instead of using the REST API on startup
- allows reconciliation to happen periodically in case of failures
- refactor common poller code