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.
Expose require("recast").printWithSourceMap.

Example usage:

    var sourceFileName = "source.js";

    var options = {
        sourceFileName: sourceFileName,
        sourceMapName: sourceFileName + ".map"
    };

    var source = require("fs").readFileSync(sourceFileName, "utf8");
    var ast = transform(recast.parse(source, options));
    var printed = recast.printWithSourceMap(ast, options);

    console.log(printed.source);
    console.log(printed.map); // JSON source map representation.