Presence channels

This branch adds presence channel supports, but not exactly as Pusher describes.

Two issues:

* If the user_id is the same, do not subscribe again;
* If the websocket is terminated, unsubscribe the channel only when no other connection with the same user_id is up.