GEOMESA-201 Compute geometries from Geometry Filters

* This pr makes a first pass at extracting geometries to cover from the geometry filters.
* In order to do this, various things are refactored.
* GeohashUtils.getUniqueGeohashSubstringsInPolygon is widened to accept Geometries.
Something about these null checks feels odd.  Not sure of a decent refactor though.

```scala
Option(geom).map(_.intersection(IndexSchema.everywhere).getOrElse(null)
```

Perhaps we ```netGeom``` should return ```Option[Geometry]```?