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).
No, I really do not think we should be adding 25 lines of cruft here to add a clever warning mechanism. The old format hasn't existed for very long, so there won't be many people using it anyway. Just duplicate the property, and we'll remove it (and add a release note) when the next major release comes out.