Updated message printing

The plain and html properties use get() to make sure they don't just up
and crash if the variant does not exist.  Also updated the printing
mechanism that will prefer plain and fallback to html, or print a 'no
message' message.