Remove unused requirements

Remove requirements not directly used by the test code. These
requirements make it very difficult to determine what is actually a
dependency of the library.
Free version requirements

Tests should be run against the latest versions of libraries. Initially
there was going to be a lower bound on requirements but it is unlikely
that a situation will arise where a version is too out of date and can
be added back then rather than having arbitrary minimums.
Fix test that checks ID rather than equality

CPython does not guarantee that the id() of integers will be the same
and they should therefore be tested with standard equality.
Reset POTENTIAL_HTTP_PORTS with reset

HTTPretty.reset removes all the HTTP mocks that are put in places. There
is therefore no reason to keep around potential http ports that are not
in the current list of mocks.

Therefore we should reset that set as well when we reset the mocks.
Fix relative import
Python 3: fix parse_request_body()

Return a decoded string rather than bytes.
Python 3: Pass bytes to sendall() and friends.

Thanks to Victor Stinner for this patch.
Python 3: cast return values of map() to list().

This ensures Python 3 compatibility.
Python 3: fix parse_requestline().

The parse_requestline() function needs a text string as an input. In Python 3,
it had bytes.
Python 3: do not hardcode class name in test_request_stubs_internals().

StringIO might be either 'StringIO.StringIO' or 'io.BytesIO' depending on the
version of Python used. Do not hardcode the type in the test.
Python3: Fix test_recording_calls()

* in record_request, do not try to call json.dumps() on a dict() containing
  bytes;
* in test_recording_calls(), do not hardcode the expected version of Tornado.

There was a json.dumps(some_dict) and soe_dict had bytes values
Python 3: fix test_request_stubs_internals

In Python 2, dict(request.headers) will have all keys in lower case, while In
Python 3, the capital letters will still be there. This is because of internal
changes in the requests library. Let's use lower-case headers, so that this is
not an issue.
Python 3: fix encoding issue

In Python 3, the parse_request() method uses iso-8859-1 to decode the path, but
not in Python 2. This causes test failures in Python 3. Fix that by encoding
the path back to iso-8859-1.
Python 3: fix test_httpretty_should_allow_registering_regexes_with_streaming_responses()

This was cause by the use of text strings instead of bytes.
Python3: use bytes where needed.

Bytes were needed in some place, instead of text strings.