Rearrange MessagePart logic

InteractiveMessagePart now holds TextMessageParts. This is to fit the structure of the input message.

+ Replace some ArrayLists by LinkedLists (Many insertions over time).
Fix first message part is always empty
Merge branch 'suggest/message-part-rearrange'

Re-add remove special lines at the beginning.