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.