Groups

* Implement retrieving a list of groups
* Implement changing the subject and getting notifications for a changed subject
* Implement retrieving a list of participants
* Some minor related improvements to debug output and code style
It's not the correct way to detect the type of iq result. To do so, we have to cache the outgoing iq and then the associated result will carry the same Id as the sent one, which is the guaranteed way of determining the correct result.