Fix race condition when updating roster room lists
Created by: UlfNorell
Problem was kvs:get -> kvs:put of roster outside a transaction, so if a user is added to two rooms simultaneously one of the rooms can get lost. Hits us a lot in load testing, but shouldn't be impossible to hit also under normal operations.