Add BatchMetricsQueryHandler and tests

Add RollupTestUtils
Refactor plot request parsing logic into its own class
Change MetricData to also contain 'type' of metrics
Changes to serializers for JSON output
Add HTTP endpoint & handler for batched metrics
ThreadPoolBuilder: do not use a shared work queue.
create a subclass that wraps a guage that tracks worker queue size.
Add ShardStateServices to core (copy exists in blueflood-udp, will be removed in next commit)
Use bf-core version of ShardStateServices.
cleanup imports
Bugfix in ShardStateServices
* was not getting started properly.
Break InstrumentedThreadPoolBuilder out into its own class
expose keepalive time in ThreadPoolBuilder.
Use instrumented threadpools throughout.
make a few things public in `RollupService` and `ScheduleContext`.
Make Locator hashable

...by implementing `hashCode` and `equals`.
Merge pull request #145 from gdusbabek/move_shardstatemanager_into_core

Move shardstatemanager into core
null check in Locator.equals
Merge pull request #147 from gdusbabek/hashable_locators

Make Locator hashable
Merge pull request #146 from gdusbabek/make_a_few_things_public_in_rollupservice_and_schedulecontext

make a few things public in `RollupService` and `ScheduleContext`.