Implement structures for permissions, restrictions and membership

refs #4624
Merge branch 'feature/group-membership-4624'

resolves #4624