Add unparse_url to urllib3.util.url

This round-trips with parse_url (or at least equivalently by the RFC).
Add url attribute to Url, which gives the same thing as unparse_url()
Improve code coverage
Remove unparse_url, in favor of Url.url
Make something a little clearer
pyOpenSSL: Fix WantWrite issue #412
make our WrappedSocket compatible with pypy

The changes are inspired by socket.py from pypy and the implementation is
lifted from ssl.py from pypy.
fix makefile refs
test everything on pyopenssl
fix contrib.pyopenssl on python3

On python3 import ndg.httpsclient will result in a syntax error.
always test PyOpenSSL on python2
raise timeout with an argument

The arguments are compared in the socket module, and this is the value the
stdlib uses
visually clean up imports
add note about dev-requirements on python3
gather test coverage on contrib.pyopenssl
don't cover some lines in pyopenssl
Merge branch 'master' of github.com:shazow/urllib3
Merge branch 'master' of github.com:shazow/urllib3
Revert "don't cover some lines in pyopenssl"

This reverts commit 7b6438b0a5a2a05f55cdcc678a9809349ad7d799.
Revert "gather test coverage on contrib.pyopenssl"

This reverts commit 8f04f20722d530710dc4484db46d8aa40bd36dcb.