Pluggable hosting

cf https://github.com/mapbox/node-pre-gyp/issues/106

Companion project: https://github.com/albanm/node-pre-gyp-hosting-github

The two together are tested in my fork of your node-addon-example project https://github.com/albanm/node-addon-example

I couldn't test that I didn't break s3 support as I don't have an account. I guess travis-ci will tell me soon enough if I did ok.

I didn't externalize s3 hosting in order not to break compatibility, but if you chose to do so it will be easy.

Of course I am open to all feedback.
see here for an example: https://github.com/albanm/node-addon-example/blob/master/package.json

I didn't move host around in order not to break compatibility, but following the logic of this PR it should probably be in a 'hosting' object in the 'binary' options. And the add_trailing_slash or other processing should be done in the specific hosting implementation.