Added ability to specify a proxy server for requests.

This meant refactoring how `request` options are put together and adds a new dependency on `utils-extend`