GEOMESA-357 Cache SimpleFeatureBuilders

* Switched to using ThreadLocal SimpleFeatureBuilders for IndexEntryDecoder use.
GEOMESA-404 Fixed typo
GEOMESA-383 attribute index only iterator
GEOMESA-405, GEOMESA-406 fixing thread-safety and split issues in AccumuloDataStore
GEOMESA-403 fixing dtg,geom projection query
GEOMESA-352 fix for stats timing
GEOMESA-398 Fix GeoMesa script classpath issue

* Tweaked shell script.
GEOMESA-422 Closing Accumulo writer in finally block in StatWriter to prevent leaking open writers
GEOMESA-423 fixing shared connectors across stat writers

* keeping connector with each stat
* propagating errors in stat writer thread so that executor service will stop
GEOMESA-287,GEOMESA-303 Handle transformations in command line export Investigate export behavior when exporting with -a id

To test this PR, sample commands can be found at https://geomesa.atlassian.net/browse/GEOMESA-287.
GEOMESA-419 Refactor metadata out of AccumuloDataStore

* Created GeoMesaMetadata trait and Accumulo implementation
* Moved metadata methods into it
* Used concept of key/value store for metadata as String,String instead of Text,String
GEOMESA-346 removing hsql epsg for hard-coded 4326
GEOMESA-451 GeoMesa shell should allow for sharing tables

* Adds flags to the command line for table sharing.
* Addresses classpath issues for MapReduce ingest and attribute index job.
GEOMESA-432 Improved GeoMesa Tools script

This PR addresses some usability issues with the geomesa shell script. Now environment variables
for hadoop and accumulo can be optionally set, and individual paths can be overridden by the user.
Also more informative messages are printed when certain variables are not set.

GEOMESA_HOME and GEOMESA_LIB are now set in function calls, "configure" still works and now should
print out what needs to be added to persist the configuration.
GEOMESA-456 Fixing WMS TIME parameters
GEOMESA-417 unique attribute process

* added WPS process to retrieve unique attributes
* cleaned up and standardized explain query output
* fixed typo in minicluster README, moved minicluster logs into logs/ folder
* adding option to sort by count
GEOMESA-424 cql 'OR' filter query does not deduplicate

* moved deduplication code into QueryPlanner.getIterator method and used it for both duplicatable data and OR queries
* refactoring to be a bit more selective
* added inclusion-exclusion test to AccumuloDataStoreTest
GEOMESA-458 Default geom field can have index=false

* Default geometry now always gets index set to true
GEOMESA-455 Add caching as an optional param to data stores

* Adds a caching param to data store constructor
* If caching param is toggled, then requests to getCount and getFeatures
  will cache resulting feature collection in AccumuloFeatureSource
GEOMESA-457 Optimize sorting of results

* Sorts results based on SortBy parameters