Make npm bundling safe to be run in parallel

Instead of modifying the contents of the .npm directory
inside a package directory, construct a new temporary
directory and atomically replace at the end.

Also, some minor improvements to testing and pruning
unused packages
npm support: comment improvements and simple npm-shrinkwrap.json files
commit simpler .npm/npm-shinkwrap.json files
npm support: simplify and rename
npm: enable pinning subdependencies to github tarballs

also some minor reorg
npm: call `npm install name@version`  less

+ some reorg/cleanup
newline at end of .npm/.gitignore files
npm dependencies at bundle time

- package.js now has a top-level 'Npm.depends' directive
- both bundle-time and server run-time code can get access
  to any dependent npm module with 'Npm.require'
minor improvement to cli-test.sh
when installing npm dependencies, fail quickly if offline
ping registry.npm.js.org to tell whether we can install npm dependencies
Cleanup temporary .npm directories

These were left behind if you Cmd-C'd the running
meteor process
minor text change
`meteor test-packages` only looks in packages/ if run from a checkout

also, remove an annoying `console.log`, that will be superceded
by the upcoming updater work
move script into tools
Eliminate one last use of __meteor_bootstrap__.require
Simple script to upload packages to packages.meteor.com
Delete unused file (real one is at lib/fiber-helpers.js)
Script that generates an engine install tree.
simple logging when calling out to npm