Don't mask any exceptions in fetc()
Adopting HTTP response model from urllib.

- Responses with status >= 400 become HTTPError exceptions
- Tests that were specfically testing for error responses
  are gone.
Inlining and simplifying _makeResponse.
Clean-up of HTTPResponse

- removed class attributes
- made 'url' and 'status' positional
Replaced custom patcher with unittest.mock.patch
Removed unused import of http.client from fetchers.
Removed unnecessary casting of body to bytes in fetchers.
Combined user agent definition in one place.
Killing fetchers.HTTPResponse

- fetchers.fetch now returns unwrapped response from urlopen
- HTTPResponse still lives in test.support as a mock object
- fixed a lot of code and tests to expect bytes from
  response.read() instead of strings in response.body
- temporarily dropped support for limiting reading from
  a response by size