GEOMESA-101,GEOMESA-130 Performance Enhancements to Iterator Stack For Simple Queries

GEOMESA-101  Optimize geometry only queries in iterator
Add an IndexIterator to the iterator stack which is run in place of the SpatioTemporalIntersectingIterator AND the SimpleFeatureFilteringIterator.

The trigger for this action is a query which satisfies the following:
1) Defines a transform which projects ONLY the geometry and temporal attributes used in the GeoMesa index
2) Filters on only the geometry and temporal attributes, and can be distilled into the selection of a polygon and interval.
3) The Density Key in the Query is not set.

If the above requirements are met, the IndexIterator is run and a message indicating such is logged.

GEOMESA-130 Refactor SimpleFeatureFilteringIterator to skip decoding when the ECQL is Filter.INCLUDE
Add logic to IndexQueryPlanner that removes the SimpleFeatureFilteringIterator from the Iterator stack if:
1) No transform is defined.
2) The filter is defined on only the geometry and temporal attributes, and can be distilled into the selection of a polygon and interval.
3) The DensityIterator is not selected via setting of the DENSITY key in the Query.
GEOMESA-138 encode avrosimplefeature field name

Added unicode encoding of feature names and attribute names using Hex, with tests.
GEOMESA-147 Loading default auth provider outside SPI process

Enables loading auth provider without the SPI Process.
GEOMESA-146 WPS import process for performance

* Implements a bulk WPS import process.
GEOMESA-122 Split OR filters into multiple queries

* Created a OrSplittingFilter Visitor which helps break apart a more complex Filter into pieces.
* Moved up the SelfClosingBatchScanner into core and implemented a basic CloseableIterator trait.
GEOMESA-131 for 1.4 and tests for avrosimplefeature

Tests included in AvroSimpleFeatureTest.scala
GEOMESA-149 Update GeoServer deployment instructions

* Includes commons-codec jar.
GEOMESA-133 SimpleFeature UserData lost in IndexQueryPlanner

Add functions to transfer the SimpleFeatureType UserData into and out of IteratorSettings, which would otherwise be lost
when passed to the Iterators via DataUtilities.encodeType
GEOMESA-151 allowing schema to not be set in datastore config for already created features
GEOMESA-155 fix accumulo1.4

this is the accumulo1.4 branch fix for geomesa-155, made attributeNameLookUp synchronized
GEOMESA-154 Remove commented out code present in MockAccumuloSource in IteratorTriggerTest
GEOMESA-172 adding try around decoding simple features
GEOMESA-139 Remove inconsistent naming of temporal and geometry attributes in index

Standardize on using geom/dtg for index attributes:
geomesa_index_geometry   --> geom
geomesa_index_start_time --> dtg
and
geomesa_index_end_time   --> dtg_end_time
GEOMESA-170 - Two query corner cases

* Addressed degenerate intersections in the Geometry utils.
* Properly handles intervals in FilterToAccumulo.
GEOMESA-150 On ingest, decomposition of multipoint geometry spanning anti-meridian should result in an equivalent MultiPolygon containing no polygons that span the anti-meridian

use spatial4j to deduce International Date Line spanning geometries
GEOMESA-121 Rewrite input filters with ORs at top.

* Implemented rewriting arbitrary filters in Disjunctive Normal Form.
  This means that any ORs have been 'bubbled up', and any NOTs have been 'pushed down'.

  The resulting filter tree has at most one OR at the very top.
  Additionally, each child of that OR is an AND or a base filter.

* Implemented property-based tests for the filter rewriting functionality using ScalaCheck.

Of note:  A clear optimization is that attribute filters need not be split up or otherwise mangled.
This issue is as https://geomesa.atlassian.net/browse/GEOMESA-171

* Refactored some of the test code to pull data generation.
GEOMESA-161 IDL query fixes

queries now support IDL spanning geoms (except for dwithin), with minor format fixes
GEOMESA-164 Add GeoMesa Pages to GeoServer

* Adds Accumulo stats, HDFS stats and config.
* Implements ability to  initiate M/R jobs.
GEOMESA-173 Extract avro features into its own subproject

Moved AvroSimpleFeature into its own subproject.  Implemented
AvroSimpleFeatureFactory to create AvroSimpleFeatures when
using SimpleFeatureBuilder.
GEOMESA-144,GEOMESA-140 Ensure a Temporal Attribute is included in index

GEOMESA-140 Warn users about missing temporal component of index
* This commit adds a warning when a user neglects to properly set SF_PROPERTY_START_TIME in the UserData. Such a mistake is non-fatal, but does impact performance.

GEOMESA-144 Set temporal index variable by default if not selected by user
* This commit will set SF_PROPERTY_START_TIME for the user if a time attribute is present in the SimpleFeatureType, and emit a notification to this effect.