Added ability to specify a proxy server for requests.

It will now respect environment proxy settings in `HTTP_PROXY`

This meant refactoring how `request` options are put together and adds a new dependency on `utils-extend`, but it now means all of the options passed to `request` are customisable