Add in memory tag and metastore index

*STILL A WORK IN PROGRESS*

## Overview

This PR adds an in memory metastore and tag index. It should be treated like a write through cache for the metastore. Whenever the metastore gets updated the index should. The index is loaded completely into memory on server load.

It will provide quick lookups for measurements, series, and filtering those based on tags and regexes.
I think it makes more sense to merge the `Index` fields into other types:

1. Move `measurementIndex` to `Measurement.index`.
2. Move `seriesToMeasurement` to `Database.measurementsBySeriesID`
3. Move `series` to `Database.series`

We'll need the `Database.series` index for writes too so it'd be good to not have to double lock for that.