Track main roster in Candy

This adds a main roster to Candy to track user contacts, based on the Strophe roster plugin. It also fetches the roster on connect/attach in order to comply with RFC6121. This is just the basics, more is coming later today:

* [x] Roster versioning
* [x] Aggregate presence for a user for display in the UI.
* [ ] VCard data maintained for roster entries as the basis of [a user profile view](https://github.com/candy-chat/candy/pull/272)
* [ ] Association between `Candy.Core.Contact` and `Candy.Core.ChatUser` models where we have a MUC user's real JID (`Candy.Core.ChatUser.getContact()`).
* [ ] Inclusion of `Candy.Core.Contact` or `Candy.Core.ChatUser` instance in events where we currently pass around only a JID, to allow for more intelligent implementation of [one-on-one chats with contacts](https://github.com/candy-chat/candy/pull/268).
Hmm, does jshint tell you that? Candy uses the *old* way of modules, jQuery is just a global ;)
See e.g. https://github.com/candy-chat/candy/pull/287/files#diff-6916399a295579e5bcc1d3f3fa986af8R14
Using this, jshint knows that jQuery is global, maybe you could just change it to `$` and it works