Don't make Backend.rooms be a property

Unfortunately, when it's a property, this breaks command injection for
plugins because the inspect.getmembers() call somehow ends up triggering
the NotImplementedError exception :(

This is not acceptable and the argument "but it should be implemented
for all backends anyway" doesn't fly because not all backends may
support multi-user chatrooms, so we still want to be able to raise an
exception there.
Use join_room when query_room is not yet implemented