GEOMESA-389 Refactor SimpleFeatureEncoder

Separated encoder trait from decoder trait
Probably is...but there's no way around it with the way we have GeomesaSpark designed at the moment. Since we removed 4 other caches decided to let this one slide.