Improve integration test support in the BasicServer
Allow the BasicServer to run the listen loop off the main thread - then we can run a client and server side-by-side in integration tests.
Allow the BasicServer to run the listen loop off the main thread - then we can run a client and server side-by-side in integration tests.