Track main roster

* Request our roster when we connect, before sending initial presence, according to http://xmpp.org/rfcs/rfc6121.html#roster-login.
* Emit events when the roster is fetched/updated
* Aggregate status for multiple resources
* Permit bootstrapping roster from cache (roster versioning) via options to Candy init
* Associate a MUC ChatUser with its Contact from the main roster if they are not anonymous and are present in our roster
* Add basic tests for processing room presence

Closes #287