AST based parser

Almost complete ES5 grammar, few missing basic things:

* Function statements (functions inside functions. Not `f = function() {}`
  which is covered by function expressions)
* labels
* `for in`

Furthermore, for now identifiers and string literals only contain the first letter.
They will contain pointer+len field; deferring until the VM internals are redesigned.

Manual tests cover all constructs and check a manually inspected serialized AST.
They allow safe refactoring of the parser until we can actually execute ECMA 262 tests.

Most ECMA 262 tests are also parsed without errors, although I didn't check whether
the AST makes any sense. Some ECMA 262 tests are skipped because they rely in yet
to be implemented grammar.