Pretty solid equi-joins.

The goal of all this was fixing selection of multiple fields in a query containing a join, but a few other things came up along the way. Mainly:

* tests weren’t using `interpretPaths`, which hid
* bugs when checking for ambiguous references;
* values in bindings had unresolved free variables; and
* merging was broken in some non-pipeline cases (which appeared when selecting more than one thing in a join).
@mossprescott Yep – already committed (but not pushed) that approach 😉