Support login tokens for multiple registries
This pull request builds on #4206 to support login using the the registry from alternate registries (RFC 2141). This includes the following changes:
- allow credentials to be stored based on the registry
- allow passing the registry to run cargo commands against using --registry
Note that this does not include a feature gate on the use of --registry as the publish code blocks publish if we use any features. @alexcrichton, are you happy with this approach, or is there a way that you would recommend this should be relaxed for testing purposes?