Changing how user membership to teams work

Having an inbetween membership model allows us to quickly support
multiple teams as well as have fine grained permissions per user
per team on the membership model.