GEOMESA-234 using lexicoders for secondary index values

* Using mango lexicoders for primitive types
* Moving some encoding/decoding logic into more consistent locations
* Updating attribute strategies for querying with lexicoders
Here we don't, but in AttributeIndexEntry.getAttributeIndexMutations we do (previously it was doing a null check, but I figured Option was better).