GUI: do not "load" messages when the viewer is not visible

The idea is to save bandwidth (and prevent marking message as read) when the
message pane is not shown.

Thanks to Vayu <vayu@sklinks.com> on the ML for his suggestion.

Thomas Lübking also provided a better way of checking the sizing and suggested
loading the current message when the widget comes back into view.

REVIEW: 110978
Fix build warning

I should've caught this at the time I reviewed the patch, of course.
Merge branch 'dont-load-mails-with-invisible-msgview'