[PR-46] UI: Running refresh for the metrics list cleans out the charts. Added a persisent 'Default Group' that store the last set of charts to local storage and loads them the next time app is started up.
Fix metrics service instantiation to use the builder and avoid reflection.
- is not  valid character for cql identifiers
adding initial schema/mapping support for tenants

This commit includes a whole bunch of new schema changes in schema.cql. The
only thing implemented and tested so far is the tenants table. There is some
support for creating and fetching tenants.
make the interval more strongly typed, add javadoc

The schema has been modified such that the aggregation_template.interval field
is now a tuple. The map key in tenant.retentions is also a tuple now as well.
That tuple consists of the metric type and the interval. At some point we may
wind up replacing these tuples with UDTs.
initial mapping support for numeric_data table and store interval in single column

This commit introduces NumericData with a couple unit tests for exercising
basic reads/writes and mapping data. There is also some work around attributes.

I have updated the schema  again, storing the interval as a single column/field.
It is easier to manage that way. I have also introduced the Interval.parse
function for parsing strings into Interval objects.
use new C* 2.1.1 sytax for adding attributes

The new supported syntax makes its easier to add new attributes since we can
now pass a whole map which will be additive. Previously passing an entire map
would be result in overwriting an existing map.
some initial support for storing/retrieving aggregated metrics
add mappes for tenant and numeric data queries

This commit also makes inserting a tenant a conditional update so that we can
prevent overwrites.
get integration tests back working and remove using of DataAccess class from MetricsServiceCassandra

MemoryMetricsService is broken state. It still needs to be updated to work with
the new NumericData class in place of RawNumericData.
Make MemoryMetricsService work with NumericData
add tenant_id to counters
replace DataAccess with DataAccess2
add NumericData.setTimestamp convenience method

I added the convenience method because most of the time we probably won't need
to worry about UUIDs. This required moving TimeUUIDUtils and a couple
dependencies to the core-api module.
try to get travis-ci working with C* 2.1.1
move the :before-install section before :services
try taking out :services since we are not using a stock C* install
initial support for storing attributes for numeric data

Best explained with a couple examples.

POST /rhq-metrics/metrics/numeric

{
  "tenantId": "rhq-metrics",
  "name": "M1",
  "attributes": {
    "description": "Test metric for storing attributes"
  },
  "timestamp": 1415129932180,
  "value": 3.14
}

The request body includes tenantId which will soon be required. Most
importantly, notice the attributes property which is itself an object whose
values should be string.

Here is a second, slightly different example.

POST /rhq-metrics/metrics/numeric

{
  "tenantId": "rhq-metrics",
  "name": "M1",
  "attributes": {
    "units": "IBU",
    "env": "dev"
  },
  "data": [
    {"timestamp": 1415128240771, "value": 1.1},
    {"timestamp": 1415128270618, "value": 2.2},
    {"timestamp": 1415128293388, "value": 3.3}
  ]
}

Here we submit multiple data points. Because attributes apply to the whole time
series, all of the data points for the M1 metric will have the units, env, and
description attributes.