Let firstNonSpacePos and lastNonSpacePos update position destructively.
Maintain mappings for Lines objects.
Enable mappings by inventing a default sourceFileName.
Update targetLoc after sourceLoc to avoid interference.
Move skipChars from lib/mapping.js to Lines.prototype.
Optimize Lines.prototype.skipChars to skip whole lines.
Simplify Lines.prototype.skipChars even further.
Move skipChars from Lines.prototype back into lib/mapping.js.

The skipChars function is rightfully an implementation detail of the
Mapping code, and has little place in the public interface of the Lines
class. I moved it into lib/lines.js originally because I thought it could
benefit from access to getSecret, but that access proved unnecessary.