Various source selectors

- specify registry for NPM (resolves #445)
- specify mirror for CPAN
- make cpan.rb a bit easier to read
- don't fall over when registry/mirror aren't specified