GEOMESA-313 Handle Id and * queries

Picking up from https://github.com/locationtech/geomesa/pull/269


@hunter-ccri  -- note that thanks to the rebasing I've closed this PR and opened a new one. But to answer your question, the ID queries are NOT yet broken up for the filter logic, so if someone does IN('A','B',C') then a single query is kicked off looking for all three. 

I am foolishly believing that someone will only request a few IDs per query, and that in the table there are many more than that. The consequence of my baseless assumption is that the ID predicate will have the highest cardinality of all predicates in a query and thus should have the highest priority.