Changed Requests to only retry on network down when the request was already in progress

Linked to #290 and #286.

This is potentially a better solution for #286 whereby if the network is unavailable to start off with it will fail immediately. However, if the network was available and the request was in progress but it then failed and there's no network anymore then it should retry.