Implement LEFT OUTER JOIN

The join evaluation code was already structured in the right way, so all that
needed to be done was to propagate a boolean for whether or not the join is a
left outer join and to add a special case to insert a half-null row.