Tokens&comments updates

Made token & comment format more compatible with Mozilla-style node locations (as used elsewhere in code) and with Esprima's token & comment formats.

This enforces conformance between locations in different types of generic objects (tokens, comments and nodes) and simplifies usage with other tools like Estraverse / Escodegen.

Also, allowed passing arrays instead of functions in `onToken` and `onComment` so comment attachment was slightly simplified (please take look at updated example in README).
@marijnh Done. I decided not to modify all the test token objects though and instead added temporary JSON.stringify callback argument (easier to drop in future).