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
Hmm, that could be interesting... in general I had some stickiness due to the fact that when we get each attribute to encode, it's an AnyRef. Then the compiler complains if my functions bind to anything else. Would that prevent it from finding the applicable implicit bindings if I used type classes?
It would be nice to move to a serialization framework for this, but we need to maintain back compatibility with the old byte encoding. I was also trying to optimize for speed over elegance, since this is a central part of our iterator stack.