Technical changes
- Make `Role` explicitly hashable.
- Details:
- By introducing `__eq__`, naturally `Role` became unhashable, because
equality was calculated based on a property of `Role`
(`role.key == another_role.key`), and no longer structurally
(`"1" == "1"`).
- This changeset removes `__eq__`, as `Role` is being used downstream as a
hashable object, and adds a test to ensure `Role`'s hashability.