Needs better direct test coverage, but at least the suite passes.

git-svn-id: svn://svn.twistedmatrix.com/svn/Twisted/branches/desynchronize-2673@43312 bbbe8e31-12d6-0310-92fd-ac37d47ddeeb