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
Put the Option wrap in the subsequent call then . . .

```scala
val typedValue = 
   if(expectedBinding.equals(actualBinding)) value
   else AttributeIndexEntry.convertType(value, actualBinding, expectedBinding)

AttributeIndexEntry.getAttributeIndexRow(prop, Some(typedValue))
```