Provide single-session support.
Add docs on keepalive setting.
Only save the session if it's valid.
Avoid double scroll-bars in control box
Add the ability to log out of a session. updates #80
Refactor chat rooms.

When re-attaching to an existing session, chat rooms are fetched from
sessionStorage and we join them again.

However, unless we send a presence of type unavailable before reloading the
page, from the XMPP server's perspective we never left the chat room.

It therefore doesn't send us again the room occupants or room messages.

To send a presence of type unavailable is a hack and not desireable. Rather, we
want to stay in the room and just re-attach to it upon page reload.
In order to do this, we need some new functionality.

* Refactor the chat room sidebar into a new Backbone Model/View combo. (done).
* Store/fetch room occupants in/from sessionStorage (done).
* Store/fetch room messages in/from sessionStorage (not yet done).
* Instead of re-joining a chat room which we never left, just register the event handlers again. (not yet done).
Give chatroom's occupants view a ref to the chatroom view

and thereby fix bug with directInvites.
Properly remove chat room occupants who leave.
Chat room messages are now stored in browser storage.
Fixed a timing issue with keepalive.

When loading a page with an existing session, the roster view's elements were
being added too early, resulting in event handlers not being properly
registered.
Bugfix concerning trimmed chats.

Chats were being trimmed even though there was enough room.
Call initRoster only after controlbox is connected.
Some work on fixing the broken subscription flow.

Looks like the subsription flow was broken since the roster groups refactor.
Requesting and pending contacts weren't being properly added to (and removed
from) roster groups.

Requesting contacts are now properly added and remove. Next up, handling
outgoing requets (i.e. pending contacts).
Recreate the roster each time initRoster is called.

Otherwise we will reuse old/stale objects for which we receive no add events
(resulting in an empty roster).
Bugfix. Make sure we fall back to jid if no fullname is set.
Fix. Make sure that a user appears as pending once you've added them.
Fix (some) tests.
Fix tests but killing zombies.
Show groupchat messages where user is mentioned in bold.
Remember state of chat room sidebar.