Fixes infinite CPU loop when tunneling for py26.

The bug was in the http standard library for py26. Sometimes the ``_tunnel()``
function entered an infinite while loop due to incorrect assumptions made
on data read in. Especially affected users that were using proxies.

I tested the fix on the VPC that reproduced the bug.  It worked fine and I did not see any additional errors that were seen in previous attempts to fix bug.  Tests are included to ensure bug is fixed.

cc @jamesls @danielgtaylor 
I have a good idea to avoid the infinite while loop when testing now.  I will mock out ``fp`` to a ``Mock()`` object as opposed to ``BytesIO()`` and then I can have it raise an error if ``readlines`` is called too many times.