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
The only thing I found after some googling is this: http://aboisvert.github.io/stopwatch/ - but it seems kind of unpolished and hasn't been touched in 4 years.