GEOMESA-364 AvroSimpleFeature Writer

Created a new AvroSimpleFeatureWriter to implement Avro DatumWriter. Changes include:
* AvroSimpleFeature objects no longer have expensive initialization
* SimpleFeatureEncoders now are parameterized by SimpleFeatureType
* LoadingCaches converted to instance variables for type mapping
* AvroSimpleFeatureWriter handles writing instead of AvroSimpleFeature.write() method
* Reuse DirectBinaryEncoder/DirectBinaryDecoder for performance (no buffering) on read/write
* Reuse ByteArrayOutputStreams on write
* Serialization method handles any SimpleFeature type (not just ASF)
* Use cached sft.indexOf() method instead of caching via LoadingCache
GEOMESA-356 adding label for binary format in layer previews
GEOMESA-370, GEOMESA-365, GEOMESA-372, GEOMESA-371,  GEOMESA-380

* excluding imageio, grapht
* excluding jai_imageio
* excluding jgridshift
* excluding jsr305
* including shaded jars in geomesa-assemble
* making accumulo and hadoop provided in tools
* pegging version of jackson
* pegging version of snappy
GEOMESA-379 Making spark-core a provided dependency and excluding javax.servlet