This avoids circular data structures (I think this is the only case of
it), which should prevent the infinite-loop/out-of-memory situations
when Emacs prints one in an error or backtrace and print-circle is
nil.
Fixes#41.
Due to a minor bug in ement-send-direct-message, some rooms I made
recently weren't marked as direct. This function allows any room to
be marked as direct. Now that that bug is fixed, it shouldn't be
needed, but it is useful for fixing such rooms, anyway.
This simplifies relations between files and avoids circular
dependencies. package-lint may complain about symbol names in the new
file, but that's okay.