Update compiled JS
Merge pull request #3094 from epidemian/compile-js

Update compiled JS
Change how error messages are shown

Instead of throwing the syntax errors with their source file location and needing to then catch them and call a `prettyErrorMessage` function in order to get the formatted error message, now syntax errors know how to pretty-print themselves (their `toString` method gets overridden).

An intermediate `catch` & re-`throw` is needed at the level of `CoffeeScript.compile` and friends. But the benefit of this approach is that now libraries that use the `CoffeeScript` object directly don't need to bother catching the possible compilation errors and calling a special function in order to get the nice error messages; they can just print the error itself (or let it bubble up) and the error will know how to pretty-print itself.
Override the SyntaxError's "stack" property instead of deleting it

This makes the "stack" property more useful when it's shown on other Node.js applications that compile CoffeeScript (e.g. testing libraries) and should fix #3023. A minimal example:

    $ node -e 'require("coffee-script").compile("class class")'

    /usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:41
            throw err;
                  ^
    [stdin]:1:7: error: unexpected CLASS
    class class
          ^^^^^
Fixed deep directory creation for command line utility
Using original existence check with mkdirp call on failure
Merge pull request #3101 from FredyC/master

Fixed deep directory creation for command line utility
cleaning up mkdirp bit.
recompile
Merge pull request #3104 from davidchambers/recompile

recompile
Avoid using a getter for the compiler error's "stack" property

Instead, set the "stack" property manually when the error gets updated on re-throws.
Merge pull request #3100 from epidemian/issue3023

Fix #3023, Change how error messages are shown
Use coffee binary of coffee that overrode fork

This solves two potential problems when it comes to forking:

    1) Forking will now work correctly even when `coffee` is not installed
       globally.
    2) Forking when using a locally installed version of `coffee` will fork
       using that version, and not fallback to a globally installed version.

Fixes #2957
Merge pull request #3107 from mal/issue2957

Fork with binary of coffee-script in use, rather than global