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

GEOMMESA-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.

I think I'm reading this incorrectly, but the `SpatioTemporalIndexingIterator` appears to map `(Key, Avro)` to `(Key, Avro)` pairs, whereas the `SimpleFeatureFilteringIterator` appears to map `(Key, Avro)` data to `(Key, SimpleFeature)` pairs.  If that's still the case, does that mean that this case -- in which neither the `IndexOnlyIterator` nor the `SimpleFeatureFilteringIterator` is used -- still needs an operator to decode the `Value` objects to `SimpleFeature`s?