Download estimate error handling

These changes came about because RC Geoserver was down the other day and I realised that the download size estimator did not handle connection problems the same way it did processing problems. So we no longer catch Exceptions in ExternalRequest rather we let them bubble up to the layer that actually is using the request so they can choose how to handle them.