onToken callback and comments support

Added optional `onToken` callback and provided an example for preserving comments in the code generated with [Escodegen](https://github.com/Constellation/escodegen).
Here you change the way the tokenizer interface works. The result is saner, but possibly less efficient. I am okay with the change, but you should also remove the token copying logic in acorn_loose.js then.