Manage frontend dependencies with npm

Rather than relying on the developer installing global modules this pull request installs the node dependencies locally in the `bootstrap` script. This has the following benefits:

1. The installation process is simplified for most platforms.
1. We get fine grained control over which version of each package we want to use.
2. The developer no longer has to worry about installing different versions of these dependencies when moving between projects.

NOTE: I've only verified the installation on OSX, if you're familiar with any of the other platforms I'd appreciate it if you could verify the new instructions for installing node work. Otherwise I'll install the VM's.