Better task reconciliation

- fixes an issue where the REST API is still catching up on task reports and Singularity startup considers them lost
- uses task reconciliation on the framework driver API
- allows reconciliation to happen periodically in case of failures
- refactor common poller code
This was the reason we needed the underlying_client @hgschmie :) 

Anyway, I'm okay with using this reflection. I also filed https://issues.apache.org/jira/browse/CURATOR-152