Use Membership structs to store user membership data

This will be used later to simplify the ACL code