Add support for Source Map Revision 3.

The parser has been adjusted to keep track of the current position
(line and column) instead of the current line. The position to the start
of the token an AST node is generated from, is stored in the node. During
code generation we keep track of the current position in the target file.
For each node of interest we create a mapping between the position in the
source and target file. Finally, a source map following the Source Map
Revision 3 specification can be generated for the collected mappings.