Add lexing and parsing for subqueries
Add compilation for subqueries

This means that select ASTs in typed_ast are now table expressions, so we need
to compute a type context whenever we compile a select.
Implement evaluation for subqueries

We no longer evaluate select statements to tables; intead they're always
evaluated to contexts. In the future when the results are written to a table,
that can be done as a separate step. This change involved changing a bunch of
code in tinyquery_test, so I also cleaned up that code to be less repetitive.