Factorize attribute handling into new AttributeStorage class.
Summary:
This fixes jobs sending unmodified attributes, potentially overwriting
changes made elsewhere.
Port Collection and Tag to use AttributeStorage.
Item will be for a separate commit.
Test Plan: All tests pass.
Reviewers: dvratil
Reviewed By: dvratil
Subscribers: kde-pim
Tags: KDE PIM
Differential Revision: https://phabricator.kde.org/D19556