GEOMESA-583 Adding customized encoding/decoding for index entries

* Replacing IndexEntry encode/decode with IndexValueEncoder
* Adding ability to specify attributes to encode in st index value to SimpleFeatureTypes, SftBuilder
* Selecting index iterator in the case of a transform covered by the custom index value
* Improving method profiling
Yeah, there is some overlap here with the AvroSimpleFeatureUtils. I was trying to make this as fast as possible, which is why I re-implemented it here in a very specific fashion to avoid creating intermediate objects, etc. And I didn't want to change the avro encoding, as more back-compatibility nightmares would ensue. If you think it's general enough to move somewhere else, I could do that, but I think for stuff like this going forward it would be better to use a serialization framework.