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).
I think that's a bad idea, mainly because specs2 reports the source location of the `must` that fails, so if you refactor that into a helper method, all test failures get reported in the helper method, instead of in the particular test.

Instead, why not make `interpretPaths` a method on the companion object and import it? That way you'd have just `interpretPaths(q, mountPath, basePath) must beRightDisj(exp)`, which is fairly succinct.