geomesa-108 work in progress

This WIP is for Geomesa-108, adding support to the DensityIterator for non-point geometries. The geometries now supported include: Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, and MultiPolygons. Polygons and Lines are approached in different ways in this WIP:

Lines and MultiLines are *drawn* using the bresenham's line algorithm to create points along the line between any two points in a linestring sequence of points.

Polygons and MultiPolygons are *drawn* by first constructing a geotools Oblong grid of rectangles over the extent of the Envelope provided, as an iterator. The resulting grid is then intersected with the given polygon, and the centroids of intersecting grid rectangles are then counted as *hits* in the result table. 

Currently there is an issue with non-point geometries being duplicated, as well as an issue with the Oblong grid not making exactly as many rectangles as I expected. So explicit tests are not exactly written yet. 

And a new jar was needed from geotools (grid).
while I think I get what you were saying, unfortunately I don't think it works, each geom in a multi line string must be treated as an individual live string as you don't want to connect them all into a single line string. Currently in `handleLineString` I take a sliding window of a given line string, and then call a flatmap over that sequence of point pairs, each point in a given pair is passed into call `generateLineCoordSeq` to generate a sequence containing those two points as well as all points if any between those two points. at the end of the flatmap I call toSet to remove duplicate points which should guarantee that no one point would be present more than once. so a cross of lines in a multilinestring should render as a "X" with the intersect counted only once.