Move `interpretPaths` from the class to the object
Simplify a conditional expression.
Fix outer joins.

The earlier change to using `value` for nested documents hadn’t been done for outer joins.
Modify join tests.

Extract the overall structure, add a test with multiple fields, and add a test with an outer join.
Add a test for 3-way/nested join.

Also rejigger the `joinStructure` helper function a bit.