Use a std::array internally as we don't expect the cache to be
copied a lot. The test case is also greatly expanded to test the
full (new) API surface of this new container class.
Remove useless include
Add LRU cache for QTextDocument to MessageDelegateHelperText
Instead of recreating the formatted HTML representation of a message
*and* layouting that in a QTextDocument repeatedly, introduce a
LRU cache and use it in the MessageDelegateHelperText. This patch
noticeably improves the performance of scrolling in chat rooms with
lots of code blocks or other complicated messages.