GEOMESA-222 Accumulo Mini Cluster for local integration testing
GEOMESA-210 GEOMESA-61 setting default shards to the number of tservers; adding configuration for number of threads; adding index schema builder; removing mapreduce data store; adding trace logging in query planning
GEOMESA-223 Fixing delete of non-existing entries
GEOMESA-221 Create encoding for SFTs that includes index toggle

Added a utility class for working with SimpleFeatureTypes.
Toggleable secondary indexes
Upgraded specs2.
GEOMESA-228 Remove unstable tests

* Removed tests in FilterTester.scala from the build.
 Those tests were failing in somewhat arbitrary and non-reproducible ways.
GEOMESA-57 Adding default constructor for TimestampSetIterator and test (originally from @cne1x)
GEOMESA-209 - Identifying unique GeoHash sub-strings in a polygon is both slow and inaccurate

Added a few new unit tests, re-wrote the way we compute these
GeoHash sub-strings, and added a few utility methods to the
RectangleGeoHashIterator and the GeoHash.
GEOMESA-191 Implement deleteSchema for featureType

deleteSchema removes both metadata and the 3 tables per feature type. Also
checks to see whether or not it's an older 0.10.x table, and if so, uses
the AccumuloFeatureWriter's remove() function to remove rows from the table.
GEOMESA-231 Allow longs in SimpleFeatureTypes
GEOMESA-202, GEOMESA-229 Consolidate unit tests, Re-enable FilterTester Tests

GEOMESA-202: Found areas where Mock Accumulo instances could be shared between tests,
merged some of the separate Iterator tests into the MultiIteratorTest,
added @jnh5y's indexSchemaFormat suggestion to most test DataStore params,
and cleaned up some specs2 code style. All changes should save about
 30 secs in complete build time.

GEOMESA-229: FilterTester was using the same datastore and tables from the AccumuloDataStoreTest,
so it was querying on the wrong features. Now, it gets its own datastore and queries
on the correct features.

Also, chnaged all should beEqualTo's to mustEqual's, along with must beFalse, and must beTrue
GEOMESA-108 Density Iterator for non-point geometries

Made more fixes as per WIP comments, added GridSnapTest(s). The intent of this ticket was to allow for polygons and line strings to be rasterized as point geometries are in the density iterator. However, currently results are inaccurate due to intersections between the geoms and the geohashes being counted twice. This will need to be looked into further.

Polygons are handled by creating a polygon grid corresponding to the raster cells in the density iterator, for each of the rectangles that intersect the target geometry the corresponding cell in the raster is increased by one. Due to rounding errors, the number of returned cells covering a given bbox may be lower than the expected number.

Linestrings are handled by generating a sequence of points between any two given vertices that fall into raster cells via the Bresenham Line Algorithm

MultiPolygons, Multilinestrings, and Multipoints are also handled by iterating over the available geometries in the given multigeom.

A small set of tests were written for GridSnap, however this will likely need to be improved and expanded.

NOTE: this includes a new dependency org.geotools.grid
GEOMESA-192 Enabling BatchMultiScanner

* Enable BatchMultiScanner for secondary index. Allows batching of results from
  the attribute index to the record table.
* Prevents using up client memory on large secondary index queries
* Fixed corner cases in BatchMultiScanner
GEOMESA-107 keeping query stats
GEOMESA-178 Add filter evaluation tests to FilterToAccumuloTest

IDL-related tests for querying of data store and inside FilterToAccumulo
GEOMESA-107 fixing stat reader test
GEOMESA-235 fixing test
GEOMESA-232 Fixing CoverageReader, also upgrades to geotools 11.2 and scala 2.10.4
GEOMESA-199 Update our POM to support releases to LocationTech's Nexus instance
GEOMESA-240 Re-enable explainQuery

* The explainQuery function was disabled. This pr adds back an explainQuery function to the
 AccumuloFeatureReader class.
* Additional planning time information has been added.

An archetypal invocation now looks like

import org.geotools.data._
import geomesa.core.filter.TestFilters._
import org.geotools.filter.text.ecql.ECQL

val aparams = Map(
  "instanceId" -> "INSTANCE_ID",
   "zookeepers" -> "ZOOKEEPERS",
   "user" -> "USERNAME",
   "password"-> new String("PASSWORD"),
   "auths"-> "AUTHS",
   "tableName"-> "TABLE_NAME",
   "useMapReduce" -> "false")

val ds = DataStoreFinder.getDataStore(aparams)

val q = new Query()
val t = Transaction.AUTO_COMMIT
q.setTypeName("gdelt")

val afr = ds.getFeatureReader(q, t).asInstanceOf[AccumuloFeatureReader]

afr.explainQuery(q)

val fs = "INTERSECTS(geom, POLYGON ((41 28, 42 28, 42 29, 41 29, 41 28)))"
val f = ECQL.toFilter(fs)
q.setFilter(f)

afr.explainQuery(q)
GEOMESA-236 GeoServer Accumulo Coverage Store password should be hidden