Major refactor to keep all of the nasty socket details at the handler
level rather than having to deal with it at lower levels.

Made hybi/hixie more WSGI compliant, they will now work with typical
WSGI containers and are no longer inter tangled with the handler.

Workaround a gevent.pywsgi bug not setting the SERVER_PROTOCOL wsgi dict
properly.

Removed the insanity that was wrapped_read - a file like object is now
passed to the WebSocket objects which means they should really be
handling the error cases.