ES5 - add missing productions

Some stuff not complete, like semi-colon insertion, but at the point where it's testable.

There are changes to the AST structure, you should probably review them if you're interested in merging this, some of which are related to #12.

There are also changes to existing code, but a lot of that was obvoisly incorrect left-recursive defintions straight from the spec that just loops in parsec.