GEOMESA-449 adding support for lists and maps in simple feature attributes

* Using SimpleFeatureTypes.createType(), you can specify a list or map:
    * names:List[String]:index=true
    * weights:Map[String][Double]:index=false

* Attribute values will be instances of java.util.List or java.util.Map when retrieved

* Lists can be queried through CQL which will execute against the individual items in the list
    * Can use standard comparison operators
    * Given the attribute names=List('bill', 'bob', 'henry') =>
        * (names = 'bob') will match
        * (names < 'joe') will match
        * (names > 'joe') will match
        * (names > 'mark') will not match

* Maps can not be queried, but can be stored and retrieved
Seems like the first ```Try``` in the for comprehension should be enough.  Does the following work:

```scala
for {
  suffix <- Try(row.substring(rowIdPrefix.length))
  separator = suffix.indexOf(NULLBYTE)
  encodedValue <- suffix.substring(0, separator)
  decodedValue <- decode(encodedValue, descriptor)
} yield AttributeIndexRow(name, decodedValue)
```