Unmask websocket frames on the fly and optimize the code

No change in functionality, but this will allow us to validate
that text frames are utf8 without having to receive the frame
entirely.
Websocket text frames are now checked for UTF-8 correctness

The autobahntestsuite now passes 100% of the tests. We are
getting close to fully implementing the Websocket RFC.