GEOMESA-6, GEOMESA-198 Secondary Indexing

* Table layout consists of a catalog table to store metadata and three tables
  per simple feature type (spatiotemporal index, attribute index, record table)
* Queries consisting of only isEqualTo and LIKE with trailing wildcard are satisfied
  by the attribute index (an inverted text index)
* Backward compatibility is maintined with Old-style 0.10.x spatiotemporal index tables
  containing embedded simple feature type metadata
* The number of shards is now configurable per simple feature type
* SpatioTemporal Index, Attribute Index, and Record Tables are all presplit
* Bug fixed in imports in FeatureEncoder
* Implementing AttributeIndexFilteringIterator as a subclass of Filter
GEOMESA-176 Implement an 'explain' query feature.

Adds an 'explainQuery' feature.

As a rough example/guide try this in the Maven Scala console (i.e., run 'mvn scala:console -pl geomesa-core'):

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]
val is = afr.indexSchema

is.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)

is.explainQuery(q)
GEOMESA-118 Implement handling for more complex geometric filter

* Pushes geometric ECQL filters into the STII/IndexIterator.
 This enables improved handling for other topological predicates along with conjunctions.
GEOMESA-203 Upgrade joda-time to version 2.3

This is to streamline the IP review by the Eclipse Foundation.
It includes upgrading joda-convert to 1.6, the most recent.
GEOMESA-135 Convert ehCache to Guava cache

Removed ehCache from the DeDuplicatingIterator, as well as references to ehCache in the pom files, and replaced with Guava cache.
Removed jta dependency, fixed cache logic, and added 2 small tests

Conflicts:
	geomesa-core/pom.xml
GEOMESA-206 Update and improve README.md
GEOMESA-207 Remove the geomesa-dist sub-project and move the manual to geomesa.github.io

This is the first half:  Removing the geomesa-dist sub-project
from the GeoMesa build.
GEOMESA-208 getSchema(featureTypeName) should return NULL when the feature type name does not exist

Iff the feature type cannot be found by name -- here defined as whether
the attributes list can be fetched -- then the `getSchema` call should
return null.  This commit adds a pair of unit tests.
GEOMESA-207 Log configs are no longer symlinks
GEOMESA-204 Abstract geometric predicate handling and apply it to attribute queries

* Added unit tests which show attribute equals and like queries to the TestFilters.
* Changed the AIFI to use an ECQL filter rather than a polygon for topological comparisons.
* Threaded additional explainQuery 'output' calls in the IndexQueryPlanner.
GEOMESA-217 ID partitioning should hash an array of attributes rather than building a string

Hash array of attributes rather than a string built from attributes
GEOMESA-216 AvroSimpleFeature should cache converters for performance

Converters are cached in the companion object.
GEOMESA-218 fixing batch writer flush on delete of features
GEOMESA-220 Explain does not handle println well
GEOMESA-215 GeoMesa query should be exclusive of temporal filter date bounds for BEGIN, AFTER

* Partitions temporal predicates out and passes them to the STII/AIFI/IndexIterator.
* Adds special handling for DWithin.  (More special cases will be produced as we move away from FilterToAccumulo.)
Thanks to Hunter Provyn for providing the unit tests in FeatureWritersTest.scala.
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.