Unify the prejoin() status handling.
Don't say "room {room}" in info messages.

In /join and /part notifications, it is implicit
that we're talking about rooms.
Use room title in backlog label (#21).

This makes ui.messageDelayed() use the room
title instead of its ID when labeling.

Some refactoring: All info messages and messageDelayed()
now use visual.formatRoom() to print a room object. It
only returns the title for now, but may create links or
other stuff in the future.

Also, room objects now have their node id as an attribute.