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 
There's a lot of duplicated setup code for the tunnel tests.  Perhaps it's worth extracting this out into a common method, e.g. `self.create_tunneled_connection('s3.amazonaws.com', 443, response='HTTP/1.1 200 OK\r\n')`.