RosterGroup modifications should depend on roster push
As described in RFC3921 and more detailed in RFC3921bis updating a roster item should work in the same procedure like adding a roster item. This means it should depend on the roster push from the server to ensure a synchronized roster. But the RosterGroup#addEntry and RosterGroup#removeEntry adding/removing the item after the successful result of the request IQ. Also the Roster#RosterPacketListener which handles the roster pushes have to add or remove the roster entry from the groups. This can lead to an incorrect state.
Committed a patch to revision 11634.
I've committed a unit test which tests the RFC roster examples. The testUpdateRosterItem test results with duplicated roster entries for romeo which is a result of this bug.