GEOMESA-107 keeping query stats

Adding an option to the data store config (default true) to collect query stats. Added instrumentation into the AccumuloFeatureReader.
The persisting of stats is done in an asynchronous background thread - not all stats are guaranteed to be written, but in exchange it consumes less resources.
The initial instrumentation is fairly light, as I didn't want to pollute the code too much. Considered using aspects, but it seemed like overkill at the moment - plus a lot of the underlying methods we'd be intercepting are undergoing change.
theoretically yes, but in practice it is a single thread. I think that even if it is simultaneously accessed by multiple threads, the worst outcome would be a couple extra table exist checks... it's used down in line 134. We don't really care about the value stored in the map, just whether an entry exists. Think I should synchronize it anyway?