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?
If `RetentionPolicy.ShardBySeriesTimestamp()` is exported then I would expect to pass in a series name rather than a series ID since we're not publicly exposing series ids. This is fine for now since we'll probably refactor into `Series`/`SeriesData` types later with the planner.