Organize read model query expression logic in separate file

This updates read model logic by organizing the query expression
logic in a separate file. This is setup for supporting subqueries
as these will add more query expression logic. Adding all of it
to the querying file and namespace was hard to work with and
follow. The querying tests suffered from similar problems as well.
This organizes it in its own file and doesn't nest some of the
classes under so many levels. This doesn't change any
functionality.