Improve tooltip API greatly. Fixes issues #6 and #29.

This PR improves the API for dealing with tooltips. The first change is not using items to represent multiple line tooltips, and instead joining a string with newlines. This prevents the ominous colon bug.

The second change added by this PR is accepting fancy message as a tooltip. The code will validate that the fancy message does not contain tooltip or click data, then it will apply it as a formatted JSON tooltip to the message component.