Added support for optional OUTER keyword.

The change is incomplete though. Since it's an optional keyword I'm not sure whether the AST should change to reflect its presence. Should the AST always be able to reproduce the original SQL? In that case the sql2ast needs a modification too.
I've written a test for this but it depends somewhat on the answer to the question above