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