Commit the source-map library.
Implement basic source maps. Closes #1252.
Add check for keep_llvm_debug + minor touchups.
Add test for source maps.

Tweak behavior of post_build; the `post2` hook now expects a function.
Ensure line numbers are the same in HTML.

Chrome and FF seem to be able to handle the extra empty lines, but no
harm making things more accurate. One thing less to worry about when
debugging.
Fix source map line numbering for inline scripts.
Add test for HTML source map generation.
Lay the groundwork for optimized source maps.
Delete uglify code that was only needed for compression.

This makes it easier to reason about the remainder...
Map source lines for assignment statements.
Move source mapping files into their own folder.
Update the source-map library.
Implement source maps for optimized builds.
Make sure the line numbers sync up.
Source maps should only be activated via the `--map` flag.
Fix line numbering for invoke instructions.

Line numbering of exceptions now work (better) in optimized mode.
Make test_debug actually fail when things go wrong.
Make optimizer handle both strings and string-like type objects.

NodeWithToken is a string-like type produced by the parser during 'embed
tokens' mode, which allows us to track line numbers.
Put uglify back the way it was.

Makes for an easier-to-review pull request.
Improvements to test_html_source_map.

* Now works on FF Nightly
* Test does not run unless explicitly requested