Add support for RFC 3921 section 9.4 acknowledgement of subscriptions
Section 9.4 of RFC 3921 (http://www.xmpp.org/specs/rfc3921.html#substates-ack) describes how clients can ack both subscription completion messages and unsubscription completion messages. In short, when a server completes a subscription (both) the initiator gets a presence type='subscribed' packet, and the client SHOULD send back a type='subscribe' to the base JID.
From the RFC: In order to require acknowledgement, a server SHOULD send the request or notification to the recipient each time the recipient logs in, until the recipient acknowledges receipt of the notification by "affirming" or "denying" the notification, as shown in the following table:
Table 7: Acknowledgement of subscription state change notifications
+--------------------------------------------------+
| STANZA TYPE | ACCEPT | DENY |
+--------------------------------------------------+
| subscribe | subscribed | unsubscribed |
| subscribed | subscribe | unsubscribe |
| unsubscribe | unsubscribed | subscribed |
| unsubscribed | unsubscribe | subscribe |
+--------------------------------------------------+
XCP (from Jabber, Inc) in particular does this; I don't know about other jabber servers.
This is also coverd in section 8.3: 6. Upon receiving the presence stanza of type "subscribed", the contact SHOULD acknowledge receipt of that subscription state notification through either "affirming" it by sending a presence stanza of type "subscribe" to the user or "denying" it by sending a presence stanza of type "unsubscribe" to the user; this step does not necessarily affect the subscription state (see Subscription States for details), but instead lets the contact's server know that it MUST no longer send notification of the subscription state change to the contact (see Section 9.4).
Similarly, the pattern also exists for unsubscribing. I would have made this a type "defect", but it is a SHOULD.