Forum and Forum Categories in v5

This is part of

* Everybody may create Forums and Categories.
  They are fertile objects.
* Both Forums and Categories can be shared (see below)
* In High Five, both Forums and Categories
  are part of the generics list of teachers and wizards,
  but not other player classes. In other words, builders
  are (as of now) not given the convenient GUI, but would
  have to write `@create $forum named XXX' and
  `@create $forum_category named YYY'

Forums and Categories
* Forums should be grouped together by Categories.
  Forums that are not members of a category
  will be appended at the end of the list as "orphans".
* If you don't have a category (owning or co-owning),
  you should start by creating a Forum Category.
* You should then create a Forum.
* Once the forum is created, use the pencil
  and go to "Forum Affiliation"
* You will find a drop down with available categories
  (owned or co-owned), into where to put the forum
* This can be done at any time later as well.
  Forum Categories created after Forums may, of course,
  hold older Forums.
* Categories are NOT containers or boxes of any kind;
  the expressions "contain", "hold", "put into" are
  NOT metaphorical expressions in MOO-sense.
* Equally, the expression "orphan" does not imply that
  a forum has no parent, let alone that a category would
  be a parent of a forum. Forums and Categories are not
  "related" inheritance-wise, nor location-wise.

There should be an instruction about that right after 
creating a forum. As of now, there isn't.

* To change the Order of Forums in a Category,
  go each Forum, Pencil, Forum Affiliation,
  choose "not connected". Do this for each forum
* Then, put the forums back in - in the order
  you want the forums to appear. First first etc.

This will be easier in the final release;
there will be some sort of a movable select box
like in Edit Order of Rooms.

* Both Forums and Categories have pencils in the
  Inventory overview ("inventory", or "shared", or, for
  wizards, "all")
* In addition to that, both Forums and Categories may
  be edited from the "subscribe" TAB. Each editable item
  (to which you have owner/co-owner permissions) has an
  "edit"-link next to it. The Object Editor will open.

I see that the Object Editor is put exactly on top of the Forum, 
thus giving the impression that the Forum is being replaced, while 
in fact, it is merely superimposed. This might be confusing, and I 
will try to change the positioning of the Object Editor window.

Maybe the links to edit should be moved from the "subscribe" to the 
"manage" TAB, or maybe they should be doubled there.

* the ACCESS TAB in the Object editor defines who may change
  the name and description, i.e., who will be co-owner
  and decide over the settings, while
* the FORUM MEMBER TAB in the Object Editor defines who may post
  messages and who may read them.
* This goes for both the Forum and the Categoy.

Again, this is briefly explained in the "direct help" next to the 
lightbulb, but it should be explained thoroughly in the Help DB.


* If a user is both in admin-mode and thread-mode, there are
  checkboxes next to the threads, and a number of buttons below
  the table
* admin-mode is toggable (admin|normal) with a menu link above the
  thread table. admin means admin for this forum, not global admin.
  Each owner or co-owner can be in admin-mode for the forum.
* thread-mode is as well toggable (thread view|flat view) up there.
* The functions are
  - delete
  - close
  - reopen
  - copy
  - move
* Clicking of any of these buttons without checkbox-checking
  at least one thread results in a message
  "You have to specify a thread"
* Clicking on move or copy without selecting a target forum
  results in a message
  "You have to specify a target forum"
* Actions (failure/success) are reported as inline HTML
  above the list.
* Checking of threads can be batched by clicking on the
  table head cell (x) to check/uncheck all boxes.
  I see that this does not work when there is only one box,
  this is a minor Javascript issue I will fix.

* When a thread is closed ("frozen"), both the top posting
  and all the submessages get an icon next to them (a barred
  pencil) indicating that replying is not possible.
* The reply-button below a message box is then replaced by
  a greyed-out dummy button saying "(closed)".
* Closing closed threads doesn't do anything. It is just ignored
  and not reported either.

* Is the opposite of close. (obviously)
* Reopening open threads doesn't do anything. It is just ignored
  and not reported either.

Move and copy
* After the action is executed, the origin forum is returned,
  possibly empty (if everything was moved away).
  This should maybe be changed to displaying the target forum.
* Moving and copying threads does NOT convey the closed-status. i.e.,
  closed threads will have to be closed again at target location.
* I see that moving/copying can mess up the personal read/unread
  statistics. The algorithm for that must be rewritten.
  In the meantime, you may click on "catch up" to mark all messages
  in the forum as read, thus setting the number of unreads to 0.
  Same goes for "mark as unread" which sets the number of reads to 0.

* A Category has a property ".members" where its Forums are stored.
* A Forum has no correspondent property.
* Hence, the Object Editor defines the Affiliation TAB for Category
  only. The Object Editor Page for the Forum does not offer changing
  is affiliation.
* A forum's category may be evaled with ;:member_of() which
  returns either the category, or $nothing (in case it's an orphan).

Known issues

* The number of unread messages for each forum, plus the inbox, are 
  displayed in the welcome box. There should maybe be a link there 
  to the forums.
* When submitting a message, a result list is shown with all actions 
  taken. This page has no link to the target forum ("view your posting"). 
  I am aware of that, and there will be a link.
* I noticed that when clicking on a message link in a thread on page 2 
  or higher in forums with more that one page, the page is reloaded 
  without the information which of the pages to display. So the table 
  with threads would (incorrectly) start at the beginning, while the 
  message box below the table would be (correctly) drawn from the link 
  from the last page visited. This is an error and must be fixed.