Reject promise with TypeError for network failures.

[Section 5.6 Fetch method](https://fetch.spec.whatwg.org/#fetch-method) of the specification says:

>To process response for *response*, run these substeps:
>
>1. If *response*'s type is *error*, reject *p* with a `TypeError`.
>2. Otherwise, resolve *p* with new `Response` object associated with *response*.


This branch brings the implementation in line with step one of the response handling. Previously, we rejected the Promise without a reason object when the network request failed to produce a response. Now we reject with a `TypeError` for any registered `catch` handlers to process.

@annevk Is this a correct understanding of this section of the spec?