Relative paths + other stuff

- Adds an option `-o` `--output-dir` which, like CoffeeScript's compiler, allows putting the build products in a different directory than the source file.
- Changes the paths found in source maps to be relative paths. This basically copies CoffeeScript's semantics: the 'source root' option is set to be the compiler's working directory, and paths are specified relative to there. For example: if you run the compiler from the root of a Git repo, then the paths will work and make sense for anyone else who clones your repo.
    - This also causes standalone js files to not contain the absolute path of the `._js` file, but instead the relative path _as passed to the compiler_ (but normalized). I'm not sure if this behaviour is entirely desirable.
- Makes all generated js files have a trailing newline.
- Cleans up `build.sh` a bit. Because of the relative paths change, `sed` is no longer required to strip out absolute paths. I also removed unnecessary uses of `cat` and made use of the `-o` option.
- Changes the firefox stack trace to be able to handle `file:line:col` lines, which new versions of Firefox (Nightly, at least) generate.