Add basic authentication authentication for plugin manager

The plugin downloader which is invoked by the plugin command line does not support downloading the plugin from a URL which is secured using basic auth.

Use Case
-------

In the continuous integration process if we want to install a plugin where the plugin artifact is available on the CI server which is restricted with basic auth this is not possible.

Workaround
----------

Download using wget passing auth details and use the elasticsearch plugin command line passing the *file* url instead of *http* url

Good to have
-----------

Plugin command line to have options to take in basic auth credentials and pass it on to the downloader.

Thanks to @katta for the original PR!

Closes #2550.
Consider changing to `void applyAuthorization(URLConnection connection);`. This should help to avoid an N +/- 1 list of `if` statements in the `HttpDownloadHelper` as more types of `AuthCredentials` are naturally supported.