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
I'm losing the thread here since I'm reading quickly.  There might be a way to turn lines 124-125 into a for comphrension with Try's.  If you can catch John in the scala chat, he might be able to help a little bit.