GEOMESA-311,312 Handle spatial-temporal and attribute filters and querie...

...s containing multiple attribute filters

Geo & attr gets a StIdxStrategy; attr & geo uses an AttrIdxStrategy. Added
additional filters to test this behavior.
If multiple attribute filters are indexable, use the first one as index and apply the rest as a filter
In the future, a query optimizer will make more informed strategy decision
I wonder if this reads better as 
```
s match {
  case Nil => (None, s)
  case h :: t => 
     pred(h) match {
       case true  => (Some(h), t)
       case false => 
         val (x, xs) = pickout(pred)(t)
         (x, h +: xs)
  }       
}
```

Either way, as a sanity check, there should be a few unit tests for this function.  In particular, we need to test the case where none of the elements in the sequences satisfy the pred.