Document trait inheritance of tooltips.
Abstract JSON writing from string conversion.
Added JSON string.
Wrap hover data in a JSON representable object.
This now uses JsonString to wrap a string as a Json value in an OOP way.
Add formatted text support to FancyMessage. Fixes #29.
This commit adds formatted text by accepting a FancyMessage without
click or hover data (enforced upon set). The abstraction made possible
by JsonRepresentedObject allows easily writing formatted or unformatted
text to the stream, which is needed because two distinct types of data
are used here: raw string (not composite object), and formatted message
(composite object).