Allow Lines.prototype.{nextPos,prevPos,eachPos} to skip spaces.
Maintain mappings for Lines objects.
Optimize skipChars to skip whole lines.
Simplify skipChars by using lines.nextPos(pos, true) to skip spaces.
Produce a source map when options.sourceMapName is defined.

Note: for the source map to be non-empty, the syntax tree must have been
created by `recast.parse(source, { sourceFileName: "something.js" })`.

Example usage:

    var result = recast.print(transform(recast.parse(source, {
        sourceFileName: "source.js"
    })), {
        sourceMapName: "map.json"
    });

    console.log(result.code); // Resulting string of code.
    console.log(result.map); // JSON source map.