Prevent coffee-script from overwriting itself with a different version

At the moment, if you're using coffee-script in a node project, it will change your `require.extensions` so that `.coffee`, `.litcoffee`, and `.coffee.md` files are compiled by coffee-script before they are evaluated by node.

When you require another project that also uses coffee-script, it will again change `require.extensions`, but this time with whatever version of coffee-script got required by that project. This results in some pretty strange bugs.

For example, in one particular project I use both coffee-script version 1.6.3 and [grunt](https://github.com/gruntjs/). For backwards-compatibility reasons, grunt requires coffee-script version 1.3.3 (see gruntjs/grunt#911). As soon as I require grunt, I am no longer using coffee-script 1.6.3 -- now I am using 1.3.3.

Seems to me that the overarching project should be able to set the version, and required dependencies should not be able to change it.