fix test so they can be run independently. refactor driver to be async safe. change test driver to match nsdriver more closely. add connect event to client stream