RFC Extract Geometries, Widen Geohash coverings, and minor refactoring.

This branch: 
 * widens getUniqueGeohashSubstringsInPolygon to accept Geometries rather than merely Polygons.
 * pulls geometries from actually Filters rather than using FilterToAccumulo.
 * pulls out some of the Filter processing as a trait.
Hmm.  I suppose this works for now, since our list of acceptable geometric predicates are all more-or-less compatible.  That is, if the collection of extracted geometries all arise from WITHIN and INTERSECTS predicates, then glomming them all together into a collection is reasonable (although I wouldn't mind taking their mutual intersection, potentially to simplify the target geometry).  Once we want to either broaden the list of supported predicates or handle NOTs, is it our intent to refactor this entire section to handle geometries differently?