Added support for text wrapping.

Long text now wraps. The observer interface has been modified to use a
different message style to better portray the concept of "levels" in
messages. The text wrapping uses these levels as indentation, providing a
visual hint at the parent and children of each of message.