Initial cut at outer join and cleaning up the query builder to better
support it.

Work on issue 5