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.
GEOMESA-179 Limit unit test logging

* Limited unit test logging for Travis CI to work. Added flag that can be enabled if developer wants to see output on command line.
GEOMESA-177 Insert waypoints in large Geoserver BBOXs

In order to support GeoServer queries and Spatial4j's IDL handling,
this pr rewrites large BBOXs to have waypoints.
GEOMESA-185 Fix TemporalIndexCheckTest

Use functions to generate the test SFTs to avoid state between test fragments.

Also modify the test codebase to remove triggers of the TemporalIndexCheckTest, and
remove a few new references to geomesa_index_* as an attribute name.
GEOMESA-169 fixing density iterator, restoring expansion of density map

* Fixes a regression in the density iterator.
* Improves the DensityIterator unit tests.
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.