Remove redundant session in `test_mixed_case_scheme_acceptable`
Rewrite `test_mixed_case_scheme_acceptable` to work with local httpbin

Instead of using hard-coded urls to httpbin.org, use the url defined
in `HTTPBIN_URL` replacing the scheme as necessary to test the mixed
cases.

Refs #1485
Remove redundant test case `test_uppercase_scheme`

This test verifies that an upper case scheme ('HTTP') works correctly,
but this is already tested in `test_mixed_case_scheme_acceptable`.
Rewrite `test_uppercase_scheme_redirect` to use local httpbin

Instead of redirecting to hard-coded 'example.com', use the URL
defined in `HTTPBIN_URL` with the path set to the 'html' endpoint.
Check the response URL in `test_uppercase_scheme_redirect`

Update the test to check that the URL in the response is the
one that we expect, i.e. the one it was supposed to redirect to.
Document the Response.close() method.
Merge pull request #1494 from Lukasa/close

Document the Response.close() method.
Wrap IncompleteRead in ChunkedEncodingError.
Update urllib3 to d89d508
Fix duplication of efforts caught by @dofelw
Provide 'host' parameter to MockRequest.
Prepare requests with session settings separately from sending.
Skip unneccessary Request.copy in Session.request
Shallow copy of Request fields in Request.copy()

This prevents e.g. modifying the headers of a copied request from
affecting the headers of its source and vice versa. Copying is used with
the intent to mutuate, so allowing this kind of mutation of fields makes
sense.

Is a deep copy better?
Add Request.copy() test case.
Add Session.prepare_request test case.
remove duplicate comment

This is already mentioned at line 357...
Merge settings when creating PreparedRequest, don't copy Request.
Merge pull request #1507 from buzztabapp/prepared-session-requests

Allow preparing of Requests from Session settings without sending.
Merge pull request #1506 from Lukasa/mockrequest

Provide 'host' parameter to MockRequest.