I should probably write this with async/await... ah, well.

Working on the async api for WebSocket and what it looks like. WebSocket.Encode is still empty, so need to fill that out, but Decoding is alright.
Need to add a generic WebSocket.Validate( bool isclient ) function to test if the received header is filled with appropriate data for the target or not (and exception if it is not).