Merge tls-abstraction-7098-2

Author: glyph
Reviewer: habnabit, radix, rwall, reaperhulk, hynek
Fixes: #7098

Refactor client TLS hostname verification support into a new, better
API (`optionsForClientTLS`), with new interfaces that will facilitate
addressing #4888.

git-svn-id: svn://svn.twistedmatrix.com/svn/Twisted/trunk@42511 bbbe8e31-12d6-0310-92fd-ac37d47ddeeb
Merge redux-4888

Author: glyph, dreid, hynek
Reviewer: alex, rwall
Fixes: #4888

Make https work right.

git-svn-id: svn://svn.twistedmatrix.com/svn/Twisted/trunk@42546 bbbe8e31-12d6-0310-92fd-ac37d47ddeeb
Merge missing-epydoc-in-http-7247: Fix a missing epydoc link.

Author: Julian
Reviewers: Alex
Fixes: #7247

git-svn-id: svn://svn.twistedmatrix.com/svn/Twisted/trunk@42550 bbbe8e31-12d6-0310-92fd-ac37d47ddeeb
convert to python3
add tests for zippath
WIP: getting around bytes + str error, still broken with ZipArchive(b'..'). see twisted.test.test_paths for workaround?
fix bugs using zipfile.  it only works if you pass it strings, not bytestrings
fix tests in python2, strings are now unicode
converting strings to bytes, since that's how the test_paths suite looks
convert stray strings to bytes
convert more stray strings to bytes
wip: confused with these repr tests breaking in py2
fix escaping test between py2 and 3
fix error adding bytes to strings, fix ZipArchive to allow taking bytes, since ZipFile breaks if you pass it bytes
keep archive path internally as bytes, fix parentdir test
fix bytes mixing issue
fix double encoding error.  broken equality check now :(
convert cmp method to eq. python3 doesn't support cmp
add hash function to fix test_dictionaryKeyWithString
fix __cmp__ missing stuff and __hash__ wasn't getting inherited