Add rudimentary source map support for callbacks mode.

This commit replaces the string-appending logic in format.js with
SourceNodes, making it possible to create a source map.
It adds a new option to the compiler, --source-map, which tells the
compiler to write out a source map to the supplied filename. Source map
mode implies --lines-ignore mode, for now, since manipulating
SourceNodes isn't as easy as manipulating real strings. If the original
source is CoffeeScript it also invokes the CoffeeScript compiler with
its source map option enabled, and then composes the two source maps,
giving a source map from the final JS to the original _coffee file.

It's still pretty hack-tacular, for now.