Computed room descriptions

This change adds a prototype for computed room descriptions.  It's
really ugly.  Also, it moves the fact-base code in facts.clj.