Implements main loop for parsing messages (using TaggedContent methods)

* The convertToJSON() method now generates a list of
InteractiveMessagePart's which contain the correct formatting
* Hover/click actions are applied to the parts correctly
* Hover text is correctly split up for different formatting parts.
* InteractiveTags get cached to the correct map.