Socket state can be updated when receiving process messages

The current implementation of `websocket_info/3` ignores the return value of the event handlers, thus disallowing any possible changes to `socket`. This PR changes that behavior and adds a test.