Better source_map support

These commits try to get source maps working correctly.

I believe the map generated before wasn't valid, and lacked a bunch of the attributes the browser needs to correctly show the original source.