Add support for hiding messages in the archives

Messages are hidden by setting hiddenstatus to one of the values documented
in models.py. We don't currently have a foreign key tracking them, just the
numbers to make things easy.

A secondary table named message_hide_reasons with a log of operations is also
created, but this is maintained completely manually.

We should probably consider creating functions to do the hiding as well as a
nicer API, but that's for another commit.