Implement writes series data on database

Not ready yet, just opening a PR to start some discussion.

The interface for interacting with the metastore feels clunky on my first pass trying to use it. I almost feel like there needs to be another abstraction over those transactions.

For example, this spot https://github.com/influxdb/influxdb/compare/write_series?expand=1#diff-320bbef96d874515320f176727a55ea8R410 where I have to close over the variables and set them feels really off.

Thoughts @benbjohnson?
@pauldix This function can generate duplicate string arrays since keys and values are combined:

```
map[string]string{"foo":"bar","baz":"bat"}
map[string]string{"foo":"baz","bar":"bat"}
```

both return sorted string arrays of:

```
[]string{"foo","bar","baz","bat"}
```

You'll need to do:

```go
type stringArraySlice [][2]string

func (p stringArraySlice) Len() int           { return len(p) }
func (p stringArraySlice) Less(i, j int) bool { return p[i][0] < p[j][0] }
func (p stringArraySlice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
```