Refactor backends to use PermissionData architecture, use Lists instead of arrays in a lot of places