Handling chat channel enter/removal in view.

Add a dialog to enter/leave chat channels. Properly show/hide channels
as they are entered and left. Modified ChatService to accept
DeferredActions.