Streams 58 - Update Elasticsearch 

This reorganizes how the components in the reader pipeline are managed.  The goal was to make sure we are following best practices for encapsulation and organization while simplifying how we handle queue management.

Since readCurrent() creates an effective batch, this sends the current queue with it and creates a new one for continued reading.

It also isolates the Elasticsearch query components into their own class so as not to confuse the responsibility of the ElaticsearchPersistReader class.