Subscription flow
=================
Happy flow
----------
Contact1 makes a presence subscription request to contact2.
::
Contact1 receives a roster update
::
Contact2 receives the presence subscription, but no
roster update. We create a roster item manually in
handleIncomingSubscription and add the 'requesting'
property to indicate that this is an incoming request.
Contact2 clicks "Accept". This confirms the
subscription and subscribes back.
::
IF Contact1 is still online and likewise subscribes back, Contact2 will receive a roster update
::
ELSE, Contact 2 will receive a roster update (but not an IQ stanza)
::
ask = null
subscription = "from"
Contact1's converse.js client will automatically
approve.
Contact2 receives a roster update (as does contact1).
::