GEOMESA-153 Remove class cast exception

* Avoids a class cast exception in a test.
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-150 On ingest, decomposition of multipoint geometry spanning anti-meridian should result in an equivalent MultiPolygon containing no polygons that span the anti-meridian

added method to decompose a Geometry that could cross the antemeridian in multiple places into one that does not cross the antemeridian
added tests
added pole spanning transformations and tests,
refactored transform methods to be general,
still breaks tube select
simplified and removed some lazy vals
added check to end recursive process once no part of remaining geometry has lon > 180 (otherwise it would translate unprocessed geom pieces above lat 180 or below lat -180 indefinitely because there is no way to get rid of or keep all of a geometry on one side of a line)
added test
added test for an antarctica AO that wraps around antimeridian but not pole
we came to a consensus and decided to remove the pole crossing transformation because nobody can use it to do anything useful in mercator projection
fixed tube select test
refactored
use spatial4j to infer dateline crossings on geom with lon [-180, 180]
if necessary, transform any coords of geom to be in lon [-180, 180] beforehand
added comment on needing waypoint if you don't want to wrap IDL
cleaned up test and optimized import
refactored
refactored
GEOMESA-131 Implemented get properties methods in 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