Line mappings

This includes #2000. Fixes #558 for coffee code in node.js that gets compiled on load (apart from string interpolation issues, they have completely wrong positions).

Yes, it still isn't perfect and there's a lot of good features it doesn't have yet, and in some cases it doesn't know the source line although that should be possible, but I think this should be merged soon anyway because we're quickly going to get a lot more merge conflicts - many things in nodes.coffee were changed.