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
GEOMESA-239 Change dependencies for Eclipse IP
GEOMESA-237 Convert AvroSimpleFeature to WKB

* Use WKB (Well Known Binary) instead of WKT (Well Known Text) for AvroSimpleFeature
* Results in 20x speedup on serialization/deserialization
GEOMESA-238 Users should be able to use Spark on GeoMesa data

* Added utility methods for initializing a Spark RDD on data stored in GeoMesa.
GEOMESA-241 refactoring geo pages for new table layouts, adding attribute index page
GEOMESA-250 ExplainQuery can be cut short.

There seem to be two problems:
* The variable 'cur' in CloseableIterator needs to be set upfront.
* Naming the 'bind' in CloseableIterator flatMap causes confusion between the compiler and the developer.
GEOMESA-253 closing shapefile datastores after use in GeneralShapefileIngest
GEOMESA-248 Expand GeoHashUtils's suggested bit range.

When getRecommendedBitsResolutionForPolygon calls getMinimumBoundingGeohash, it passes new ResolutionRange(0, 63, 1) as a parameter allowing any size to pass.
GEOMESA-167 adding ingest rates to geoserver UI
GEOMESA-249 getUniqueGeohashSubstringsInPolygon fails if you don't specify a maximum number of keys less than Int.MaxValue

Updated the unit tests to reproduce this error, and tweaked the routine to compute the expected result.