Multiple registry support (re: #1401)

This is my attempt at #1401, allowing whitespace separated registries to be specified in NPM Client. Still to be done from the numbered list in #1401 is 3), 5), 6), 7) - I'm not sure what 4) means (~/.npm/ is cache folder, right? So should it support caching from both registries?)

This pull request I think solves the main issue I've been having, which is there's no way to have a private instance of the registry which just contains private dependencies and doesn't replicate the full registry.npmjs.org. This allows there to be a 'fallback registry'

Review, comments, etc welcome!