Move user_*_room distributor stuff to master class
Move user_*_room distributor stuff to master class

I added yields when calling user_left_room, but they shouldn't matter on
the master process as they always return None anyway.

matrix-org/synapse,matrix-org/synapse,matrix-org/synapse,matrix-org/synapse,matrix-org/synapse,matrix-org/synapse