Error when we hit an unsupported join condition.

Got rid of `LogicalPlan.JoinRel`, we now accept any binary
relation (although we don’t enforce the relation part yet) and then
error if the backend doesn’t support it.

Fixes #280.
Merge pull request #346 from sellout/ready/280-non-equi-error

Error when we hit an unsupported join condition.
Fix the FIXMEs.

The first was an unnecessary case that’s covered by the general
case. The second is still a TODO (issue #347), but is now rewritten to
do the right thing less haphazardly.

However, the simple test for the ReadOp/MapOp merge, `select city,
loc[0] from zips` (which triggers this because you can’t project an
array element) currently makes _six_ requests against
MongoDB. Implementing `ExprOp.toJs` would allow us to convert
`ProjectOp`s to `MapOp`s, which would then be coalesced, cutting down
the requests to three.
Merge remote-tracking branch 'upstream/master' into ready/329-missing-merge