Added support for non shared http servers.

 - can set option tcp to false / true to enable creating a
	TCP server
 - can set option sockJS to false / true to enable setting up
	a SockJS WS emulation handler on the read http server
 - can set option engineIO to false / true to enable setting
	up an engine.io WS emulation handler on the read
	http server
 - can set option sharedHttp to true / false to enable using
	a single HTTP server for both writes and reads
 - refactored code into more functions
use http.server for listening in tests
move websocket-stream to deps
updated type information to be correct
Refactored code for readability.

 - Added documentation to the critical parts (relayMessage &
	socketListener)
 - Broke all the IO related parts into seperate handler files
 - Updated the type signatures
update README
Merge pull request #2 from Raynos/master

Updated documentation, readability & added sharedHttp support