gui: implemented ChatWidgetRepositoryIterator

This reverts commit 5a06749a11efba1266e2656f962791eecb371f2f.

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gui: use new iterator instead of ->widgets() method

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gui: remove ChatWidgetRepository::widgets()

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gui: make ChatWidgetRepository store std::unique_ptr<ChatWidget>

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
gui: documentation updated

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>