Cache the permission matrix
Cache the permission matrix

When a user without high level permissions visits a course the matrix
can be loaded many times while checking permissions. This causes the
schools to be fetched each time and the array re-built. Instead we can
cache this mostly static value.

ilios/common,ilios/common