gadu: use more advanced state machine for handling roster synchronization

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gadu: support changing contacts during update

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gadu: ensure that local roster changes are always pushed to server

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>