Don't reuse WebRequests on timeout

If a web request isn't able to complete within 15 seconds the
.Timeout observable would throw, making the .Retry kick into
action, re-scheduling the deferred request observable which
would throw if the web request was still running.

This makes sure we create a new web request on each retry.