MessageViewer: Clear viewer when setting a null message
Before this change setting a null message crashed MessageViewer. Since
one cannot reset a message parser by setting a null message (or via
some other method) I destroy the parser when a null message is set so that
the parser releases its reference to the previously set message.