TheyCalledMeBackAndLeftAMessage - adding message_received callback

The user can now set a callback which will be called each time the client receives a message from the server.
Catch non-std::exceptions since this is calling into user code.