Fix holes in message threads

This currently addresses #1525. I'm opening this here to assert the correct behaviour. This now offers a simplified threading model in which we show all messages unless they have both no children and no message. I don't see the use case for ever promoting a message up a level in the tree. Please correct me if I'm wrong.

So currently under the following conditions.

* Public messages will be shown.
* Private messages with no children will not be shown.
* Private messages with children will obfuscate the private message but show public children. This is the most confusing behaviour but we can't (I don't think) distinguish between a deleted message and a private one.
* Deleted messages with no children will not be shown.
* Deleted messages with children will show "Message not available" and show any public children.

There is a dokku here to play around with: https://1513-fix-holes-in-threads.dokku.hypothes.is