Move the IO methods into the Stream class. Specs are now green for puma!

Unfortunately it looks as though Thin hasn't implemented the rack.hijack
API according to the standard so we are still going to neeed the web
server specific adapters from faye-websocket-ruby.

There is also still a problem with terminating the actors during the
specs. It doesn't seem to be an issue with production. It may be related
to the EventMachine/Celluloid interaction that is still in place.

When there is time, the test suite needs to be rewritten to use a
Celluloid WebSocket client and remove any traces of EventMachine.