Implement basic source maps. Refs #1252.

* Only works for unoptimized / uncompressed builds.
* Implements a simplistic lexer that makes some assumptions about the lexed source (as described in comments). This should be much faster than running a full parser.

I've separated out the addition of the source-map library as a separate commit, so you can review a cleaner diff by looking at the second commit alone.