Better message masking

This PR resolves three issues at once:

  1. all messages sent by the client to the server must be masked,
  2. a message from the client to the server that is not masked will close the connection with an appropriated code error,
  3. if the OpenSSL extension is available, we use a stronger pseudo-random bytes generator to generate the masking key.

All the details are given in the commit messages.
This PR should also resolve the issue https://github.com/hoaproject/Websocket/issues/10.