Refactor for tracing, isolation, performance, metrics

* allow for "current" datastore along with existing "history" datastore
* add implicit RequestId to all functions/messages so we can track requests through the system
* track source of records so we can do conditional updates (RecordSet)
* refactor Collection to pull out data processing and refresh logic
* refactor Elector to pull out election poller
* add more metrics
* resolve several race conditions through RecordSet metadata
* analyze ElasticSearch responses for errors
* add custom execution contexts to move operations into dedicated thread pools
* refactor AwsClient, create from account and configuration