Change test server to be pluggable

This allows using either the existing lettuce test server, a new test server based on LiveTestCase (which allows you to mock things inside the test server process), or a future-new one based on greenlets.