initial support for querying by multiple tags

Here is an example request,

  GET /rhq-metrics/numeric?tags=tag_1,tag_2

and the returned json looks like,

  {"M2": {
    "tenantId": "rhq-metrics",
    "name": "M2",
    "attributes": {},
    "data": [
      {
        "timestamp": 1415717835531,
        "value": 2.1
      },
      {
        "timestamp": 1415717880887,
        "value": 2.3
      }
    ]
  }, "M1": {
    "tenantId": "rhq-metrics",
    "name": "M1",
    "attributes": {},
    "data": [
      {
        "timestamp": 1415128240771,
        "value": 1.1
      },
      {
        "timestamp": 1415128270618,
        "value": 2.2
      }
    ]
  }}

The query operation performs an intersection. Only those metrics that have all
of the specified tags will be included in the results. All of the tagged data
points are included without duplicates. Consider metric M1. Let's say it tagged
data points p1 and p2 with tag_1, and it tagged points p2 and p3 with tag_2.
Then p1, p2, and p3 will be included in the results.

The returned json is a mapping of metric names to data. It is redundant to
include the tenantId field for each metric since it will be the same for all.
Notice that the attributes property is empty. This is for a couple reasons.
First, I am using the NumericDataOut class for results, and it includes an
attributes property. Secondly, the tag queries search against the tags table,
and attributes are stored in the numeric_data table. I am not sure that there
is a good way to include attributes, so I am inclined to exclude them from the
results.