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
It's still in the ST index. The spec string contains the explicit set-up for the SFT. However, the index entry value will always contain ID, geom and default date, even if they're not explicitly set in the SFT.