GEOMESA-6 Secondary Indexing (PR for comments)

Starting this PR for comments contains code from GEOMESA-169 that will be removed after PRs 107,108 are merged. I'll squash things up later.

The table format changes. Each store has a "Catalog Table" to store feature metadata then three tables per SFT:
1. Attribute Index - Inverted attribute index of simple feature values
2. Record Table - Records only (contains rows referenced by inverted index)
3. ST Index - same as before (spatiotemporal index)

Only equalTo and like queries with trailing % should hit the attr index

AccumuloDataStore is backwards compatible with the old table format (only ST with metadata) and will respect that.

Other Notes:
* Haven't updated the GeoMesa pages yet for multiple tables...that'll come in the next PR

Please comment :)
Check out CloseableIterator constructors...
https://github.com/locationtech/geomesa/blob/2ndaryindex_2/geomesa-core/src/main/scala/geomesa/core/util/CloseableIterator.scala#L19-23
I think you should be able to swing...
```
... code that creates recScanner, iter, and attrScanner
CloseableIterator(iter,  { recScanner.foreach(_.close); attrScanner.close })
```
Anyhow, that was the point.