hax up twisted.py, changing the perform() signature and adding deferred_performer and make_twisted_dispatcher

I can't finish fixing the tests until I migrate over base_dispatcher and whatnot from the old branch.