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.
Does hints.get(key) for an unknown key return null or throw an Exception?  If it returns null, this could be refactored as 
"Option(hints.get(key)".