Add a completionTimeout to kill long running requests

Adds a completion timeout to handle killing long running requests. The timeout defaults to false and must be explicitly defined in the configuration.
`setupConnectTimeout` doesn't seem to expect the `options` param anymore. Also: could you rename the function because it's no longer setting up only the connect timeout? Sorry, should have included that in my last comment.