Currently, the YRoom.restart() method added by #117 resets the YDoc by deleting the previous instance and creating a new pycrdt.Doc instance.
However, this breaks all existing references to the ydoc, e.g. ydoc = await room.get_ydoc(). Furthermore, all observers added to the previous instance will silently be dropped.
We likely need some upstream changes to pycrdt that allow pycrdt.BaseDoc and pycrdt.BaseType instances to be reset via some method.