Dropwizard Ingestion

### Lacks tests, but ready for review.

Changes the URIs to:
 - /v2.0/ingest/basic - multi-tenant simple metrics
 - /v2.0/ingest/aggregated - multi-tenant statsd metrics
 - /v2.0/:tenantId/ingest/basic - single-tenant simple metrics
 - /v2.0/:tenantId/ingest/aggregated - single-tenant statsd metrics

### Drop-in

You can use this as a drop-in replacement for current ingestion by specifying it in the configuration as an `INGESTION_MODULE`. You can also take the uber jar generated in blueflood-dropwizard/targets and run it as a traditional dropwizard service (just create a config modeled after the sample in blueflood-dropwizard/src/main/resources/example-ingest-config.yaml

### Gone
I decided to do away with the processing chain approach of the current ingestion. It exists as a side-effect of the way Rackspace originally ingested data. If you need to scale up, just give dropwizard more resources.

### Punted
Dropwizard takes over logging in a major way. I still need to figure out a way to basically copy the log4j configuration to the mock DW config.

### Play With It
Make sure to remove the following jars from your classpath:
 - slf4j-log4j12-1.7.6.jar
 - servlet-3.0.0-v201112011016.jar (I think that's its name; its the 'org.eclipse.jetty.orbit' one that dropwizard-core depends on)

### Data Formats

Optional fields:
 - `tags`
 - `metadata`
 - `unit` (basic only)

#### basic data
    curl -i -H "Content-Type: application/json" -X POST 'http://localhost:8080/v2.0/01234567/ingest/basic' -d '
    [ 
      { 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 66, 
        "metricName": "example.metric.one", 
        "tags": ["aaa", "bbb"], 
        "metadata": { "ccc": "CCCC", "ddd": "DDDD" } 
      }, { 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 49.21, 
        "metricName": 
        "example.metric.two" 
      }, { 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 66, 
        "metricName": 
        "example.metric.three" 
      } 
    ]'

#### multi-tenant basic data
    curl -i -H "Content-Type: application/json" -X POST 'http://localhost:8080/v2.0/ingest/basic' -d '
    [ 
      { 
        "tenant": "99999", 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 66, 
        "metricName": "example.metric.one", 
        "tags": ["aaa", "bbb"], 
        "metadata": { "ccc": "CCCC", "ddd": "DDDD" } 
      }, { 
        "tenant": "888888", 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 49.21, 
        "metricName": "example.metric.two" 
      }, { 
        "tenant": "7777777", 
        "collectionTime": 1376509892612, 
        "ttlInSeconds": 172800, 
        "metricValue": 66, 
        "metricName": "example.metric.three" 
      } 
    ]'
 
#### normal aggregated
    curl -i -H "Content-Type: application/json" -X POST 'http://localhost:8080/v2.0/01234567/ingest/aggregated' -d '
    {
      "collectionTime": 111111111, 
      "gauges": [
        {
          "name": "gauge_name", 
          "value": 42 
        }, {  
          "name": "other_gauge", 
          "value": 77 
        }
      ], 
      "counters": [
        { 
          "name": "counter_name", 
          "value": 32, 
          "rate": 2.32 
        },{
          "name": "other_counter", 
          "value": 23, 
          "rate": 3.2
        }
      ], 
      "timers": [
        { 
          "name": "timer_name", 
          "count": 32, 
          "rate": 2.3, 
          "min": 1, 
          "max": 5, 
          "sum": 21, 
          "avg": 2.1, 
          "median": 3, 
          "std": 1.01, 
          "percentiles": {
            "999": 1.22222, 
            "98": 1.11111 
          }
        }, { 
          "name": "other_timer", 
          "count": 332, 
          "rate": 32.3, 
          "min": 31, 
          "max": 35, 
          "sum": 321, 
          "avg": 32.1, 
          "median": 33, 
          "std": 31.01, 
          "percentiles": { 
            "999": 31.22222, 
            "98": 31.11111 
          }
        }
      ], 
      "sets": [
        { 
          "name": "set_name", 
          "values": ["foo", "bar", "baz"] 
        },{
          "name": "other_set", "values":["fiz", "gib", "sid"]
        }
      ]
    }'

### multi-tenant aggregated
    curl -i -H "Content-Type: application/json" -X POST 'http://localhost:8080/v2.0/ingest/aggregated' -d '
    {
      "collectionTime": 111111111, 
      "gauges": [
        { 
          "tenant": "12345", 
          "name": "gauge_name", 
          "value": 42 
        }, { 
          "tenant": "12346", 
          "name": "other_gauge", 
          "value": 77 
        }
      ], 
      "counters": [
        {
          "tenant": "12347", 
          "name": "counter_name", 
          "value": 32, 
          "rate": 2.32 
        }, {
          "tenant": "12348",
          "name": "other_counter",
          "value": 23, 
          "rate": 3.2
        }
      ],
      "timers": [
        { 
          "tenant": "12349", 
          "name": "timer_name", 
          "count": 32, 
          "rate": 2.3, 
          "min": 1, 
          "max": 5, 
          "sum": 21, 
          "avg": 2.1, 
          "median": 3, 
          "std": 1.01, 
          "percentiles": { 
            "999": 1.22222, 
            "98": 1.11111 
          } 
        }, { 
          "tenant": "12350", 
          "name": "other_timer", 
          "count": 332, 
          "rate": 32.3, 
          "min": 31, 
          "max": 35, 
          "sum": 321, 
          "avg": 32.1, 
          "median": 33, 
          "std": 31.01, 
          "percentiles": { 
            "999": 31.22222, 
            "98": 31.11111 
          } 
        }
      ], 
      "sets": [
        { 
          "tenant": "12351", 
          "name": "set_name", 
          "values": ["foo", "bar", "baz"] 
        }, {
          "tenant": "12321", 
          "name": "other_set", 
          "values":["fiz", "gib", "sid"]
        }
      ]
    }'