CB-6691: Change some instances of Error() to CordovaError()

Full stack is printed out when Error is thrown, but only the message for
CordovaError. Left it as Error in several paces I wasn't sure about.
Use "npm cache add" for downloading plugins

Plugins were downloaded using the request library. Changing the registry.js
code to use "npm cache add" as the main fetching mechanism. This results in
considerably less code to maintain.

Npm's default proxy settings are used automatically (unless overridden in
~/.plugman/config).

Platform fetching done by cordova/fetch should eventually use npm as well, but
this will require publishing the platforms as npm package tarballs.
Use "npm info" for fetching plugin metadata

npm info is an alias for npm view.

By default npm view won't call the registry if there is a recent .cache.json
file for this package.
Forcing npm to ignore the cache by setting cache timeouts to 0
via npm settings cache-min = cache-max = 0.
Remove --force from default npm settings for plugin registry

Changed to setting --force specifically for (un)publish where it's needed
and removed it from the default settings.

For publish --force is needed when overwriting an already published version.
Otherwise the registry will reply with a 409 HTTP response.

For unpublishing the registry only allows to unpublish specific versions,
if you want to remove the entire thing with all the published version
--force is needed.