Don't reuse WebRequests on timeout in DownloadUrl

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.

```
System.InvalidOperationException: Cannot re-call BeginGetRequestStream/BeginGetResponse while a previous call is still in progress.
   at System.Net.HttpWebRequest.BeginGetResponse(AsyncCallback callback, Object state)
   at System.Reactive.Linq.QueryLanguage.<>c__DisplayClass23`1.<FromAsyncPattern>b__21()
```

This makes sure we create a new web request on each retry.