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.
Fix the plot_graph example so it can be run from any directory.
If the browser tab is closed while the plot_graph demo is running, don't
crap out with a big, scary exception.
Move preparing the handler to an api level function which can be used by 3rd
party libraries, if necessary.

There have been some nasty hacks surrounding getting the handler in the
correct state, hopefully this goes somewhat towards alleviating that problem.
Add `upgrade_websocket` to upmost api.