Revamp Pub/Sub

Do not expect responses for commands in the Pub/Sub paradigm (psubscribe,
punsubscribe, subscribe, unsubscribe). Instead, call the callback for every
message received during a Pub/Sub session. This changes the signature of
callback functions, which now receive a message type (subscribe, message,
pmessage, ...), a pattern (the originally specified pattern), a channel name
(the actual channel on which the message was sent), and the body.