ES6 support

Working features:

* Unicode Code Point Escape Sequences (`\u{ABCDEF}`).
* Numeric Literals (octal, binary).
* Arrow Functions.
* Spread Element.
* Classes.
* Destructuring assignments.
* Computed object properties.
* Object methods.
* Shorthand object properties.
* `for (... of ...)` loops.
* Array Comprehensions.
* Modules. (newest specs)
* Template Strings.
* Generators.
* Generator Comprehensions.

Closes #78.
Acorn is written in ECMAScript 3 -- so use the `{}` + `Object.prototype.hasOwnProperty` kludge for maps.