[Role Logic Move] Migrate isVisible behavior

The goal of this change is to move any remaining PermissionController-specific dependencies out of RoleControllerServiceImpl. This includes the following two methods calls:

- RoleUiBehaviorUtils::isVisibleAsUser
- RoleUiBehaviorUtils::isApplicationVisibleAsUser

...which in turn call RoleUiBehavior::isVisibleAsUser and RoleUiBehavior::isApplicationVisibleAsUser, which are implemented in various RoleUiBehavior implementations.

Move all of this logic into the role-controller module. After this change, RoleControllerServiceImpl now calls:

- Role::isVisibleAsUser
- Role::isApplicationVisibleAsUser

...which in turn call RoleBehavior::isVisibleAsUser and RoleBehavior::isApplicationVisibleAsUser, which are implemented in various RoleBehavior implementations. (All of these classes are in role-controller.)

Also, our RoleUiBehavior implementations fetch app resources. But, resources are app-specific, some of our behaviors need PermissionController-specific resources, and those behaviors currently assume that PermissionController is the "current" app, and therefore this will break if we move this code to SystemServer. So, change the behaviors to explicitly fetch the resource from SystemServer or PermissionController as needed (now encapsulated within VisibilityMixin), without assuming the current app.

Bug: 309139048
Test: atest CtsRoleTestCases
Change-Id: I949969aa59f18c26ce3e11c59c8d8f1e72f013a4
27 files changed