Adding custom error message to handshake error

The handshake error message is too generic and we can't pass more information if we want to display a more detailed error message on clients. 

Right now the log.warn is displaying enough detail in the server console. However clients can't access it. 

With this fix we can now send detailed error messages using callback("Session Invalid",false) resulting in "handshake error Session Invalid" on the client.

Fix for the following issues:
https://github.com/LearnBoost/socket.io/issues/545
https://github.com/LearnBoost/socket.io/issues/331