fix crash when http/https libraries use getters
fix crash when http/https libraries use getters

If this library is bundled and the bundler shims the http and https libraries such that the properties are exposed via getters instead of properties, this library will crash with the following error:

```
      wrappedProtocol.request = function(input, options, callback) {
                              ^
TypeError: Cannot set property request of #<Object> which has only a getter
```

This happens because assigning over an existing property in the prototype chain with a getter attempts to call the setter, which doesn't exist. This problem can be avoided by using `Object.defineProperty` instead of the assignment operator to implement the override.

olalonde/follow-redirects