test: split cli suite into smaller files

Create one test file per the command tested:
 - test/cli-add.test
 - test/cli-remove.test
 - test/cli-remove.test
 - test/cli-use.test

Move `itOnUnix` to helpers/it-on-unix to allow reuse.
Extract spawnNpmLogin into standalone file.
Extract RegistryConfig hasAuthCredentials

Move the code determining whether the registry config has auth
credentials and whether it requires `npm login` to a standalone file
to allow reuse.
refactor: storage.loadOrExit
Implement `promote` command

The command downloads the given package version from one registry
and publishes it to another registry.

Usage:
  sl-registry promote --from <name> --to <name> <package>@<version>

Related change(s):
 - extend spawn-npm-login to support --userconfig option
 - move quoteArg to a standalone file
promote: Implement defaults for --from and --to

Use the current registry configured in ~/.npmrc as the default value
for --from and --to arguments.

Extract RegistryConfig.findByUrl() from lib/commands/use.js.