Fix Issue #304

This is currently a WIP.  Today I managed to get the major pieces of it in place.  I am not yet passing tests, but the server starts.
self.close takes an error not a callback