[2.2] Re-introduce OuterJoin as a solution for OPTIONAL MATCH

We probably should be explicit about nulls and throw an exception if we see something else. Good point.