This makes it so that if you depend on a specific version of spark, then
your start script can be "spark app.js", and you'll definitely get the
version that you installed.
Also works for bundled dependencies.
This lets you run *any* npm command on the bundle, by doing
`npm bundle <cmd>`, so you can use it to list bundled packages, remove
them, put things in the bundle cache, etc.
To install all deps locally, it's just `npm bundle`
To install a specific package locally, it's `npm bundle <pkg>`
Todo: maybe it'd be better to be more explicit here?
npm bundle all
npm bundle add <pkg>
npm bundle rm <pkg>
bundle now does handle names, urls and tars via cache.add.
if the package is a directory only the package.json is read.
this makes bundling faster and fixes a bug with cache.add where
the bundling cache was added recursively.
* also fixed a bug with package names eg vows@0.5.1
* bundle does not support version ranges eg sax@">=0.1.0 <0.2.0"
* now throws an error if bundling packages without dependencies