Major cosockets patch

This includes the following changes:

 - Added support for SSL sockets (includes the verification of the remote end's certificate). Related to issue #178
 - Setting different timeouts for receive and send.
 - Now read and write can be done from different Lua threads. Relates to issue #241.
 - Added fake_close so that we won't be able to read again from the client socket after it is closed.
 - receive API - added the option 'bsd_read', which enables to receive the maximum number of bytes given (like the BSD API, not LuaSocket API).

The is a part of pull request #286