Copy findFreePort from twisted
Merge the two implementations of loop_until
document the ports argument
replace overcomplicated custom assertion with assertIn
remove unimplemented error condition tests. We'll do those another day