Replace custom ES runner with elasticsearch-test library

This replaces the custom elasticsearch runner used in tests with the
elasticsearch-test library for ease of use, and because it is actively
maintained.
Associated TTLs with Column Families instead of Granularity.

* This only caused a problem with the Account interface in TtlCache, which probably needs to be rethought anyway.
* Introduce MetricColumnFamily that contains a default TTL.
* Get all the TTL stuff out of Granularity.  woo.
Merge pull request #141 from dlobue/use_blueflood-test_module

Replace custom ES runner with elasticsearch-test library
Add BatchMetricsQueryHandler and tests

Add RollupTestUtils
Refactor plot request parsing logic into its own class
Change MetricData to also contain 'type' of metrics
Merge pull request #142 from gdusbabek/associated_default_ttl_with_CF

Associate TTLs with Column Families instead of Granularity.
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`.