Engine(-Tests): recursive html parsing used same TextMessagePartModel in multiple places

when setting the text of a specific TextMessagePartModel, the text somewhere else in the message also changed
now there are unit tests checking for such behavior