Refactor to accomodate multiple kinds of transports, start WebSocket implementation
Reorganize tests
WebSocket tests
Add dependencies, ignore setup.py downloads
Refactor the test command, fix Travis build
Merge branch 'websocket'