Refactor api

Here are some of my ideas around refactoring how InfluxDB's API works. The key learning here is that people have been using string columns like tags and it leads to bad performance.

My goal here is to make that the default and to expose an API that is more purpose built around the metrics/time series use case as opposed to the more general purpose SQL.

Please comment on the individual lines of [influx_api_v2.md](https://github.com/influxdb/influxdb/blob/refactor-api/influx_api_v2.md) for focused feedback. Or leave comments in the thread for more general thoughts.

I'm also very interested in hearing about specific use cases. Have I captured everything here? What have I left out? I know this can't encompass everything, but my hope is that it creates a clean foundation that we can easily expand upon.

@jvshahid, @toddboom, @benbjohnson, @dgnorton, @otoolep: please to review.
I am not sure hierarchical tags/metrics is needed, as longs as there are good apis for finding related tags (tags used together).  But I am not sure. 

Example, templated/generic dashboard with variables for datacenter, host, metric
```
datacenter: tags(datacenter)  -> returns values for datacenter tag
host: tags(host, datacenter=$datacenter)  -> returns values for host tag where datacenter eq=$datacenter 
metric: series(datacenter=$datacenter host=$host)
```
As long as you can through metric metadata api expose a hierarchy or relation between tags, and between tags and series to build generic dashboard then I am not sure the tags needs to be hierarchical.