Support join subqueries with read models

This updates read models to allow specifying join subqueries. This
allows using the power of subqueries to define complex queries
when needed. This sets up using any subqueries with read models
and implements join subqueries. This is to expose more of SQLs
tools when defining complex queries but still getting the benefit
of using the read models syntax.

This also adds subquerying logic to the read model benchmarks.
This is to help ensure this feature stays as fast as possible.

@kellyredding - Ready for review. Sorry this is so large, didn't realize it. Seems like it's mostly the query expression tests though. This implements the syntax as we discussed which worked out really well.