This will probably be replaced with a more robust mechanism that supports
a better encryption mechanisms. This is just here for the meanwhile to
support pressing needs for a way to message users.
Once this is replaced, we will probably also replace the invitation
mechanism to use the new messaging mechanism.
This enables us to have db-constraints for making sure that UIDs are
unique, as well as being more efficient for lookups (which are very
common).
The UID should always be the same as the main_item.uid, though that's
easily enforced as neither of them is allowed to change.
We started with a string because we thought it could maybe provide more
flexibility, though really, an int makes much more sense, especially on
all the platforms etebase runs nowadays.
Each collection now has an item and the item's UID is the collections
UID. This lets us manipulate collections just like items, and as part of
transactions. This is significant because it lets us change them as part
of transactions!