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).
It **is** ES3 syntax, only new APIs are feature-detected and used in ES5-enabled engines, but will work in ES3-only as well. Thought it would be useful to show warning to lib users so they would know they should switch to new API instead of looking through docs after upgrade.

Don't you think so?