GEOMESA-122 Split OR filters into multiple queries

* Created a OrSplittingFilter Visitor which helps break apart a more complex Filter into pieces.
* Moved up the SelfClosingBatchScanner into core and implemented a basic CloseableIterator trait.
Yes.  Optionally, we can drop the 'self' and use this.  

I have no opinion.  I borrowed flatMap from Iterator and it had 'self', so I rolled with it temporarily.