Methods in PhoneAccountRegistrar should ask for userhandle explicitly

1. Get calling user handle before calling clearCallingIdentity
2. Methods in PhoneAccountRegistrar asked for the user handle explicitly
instead of trying both current user and calling user
3. Modify isVisibleForUser in PhoneAccountRegistrar,
   - PA with CAPABILITY_MULTI_USER is visible to all users including
     managed profile (We are still discussing this, but let's assume it
     works in this way and change it later if necessary)
   - For other PAs, they are only visible within the user they are
     registered to.
   - TelecomManager.getPhoneAccount is an exception case. The visibility
     checking of getPhoneAccount allowing a PhoneAccountHandle from other
     profiles in the same user.
     Reason:
     Telecom passes PhoneAccountHandle to incall UI and incall UI
     retrieves PhoneAccount from the handle.
     It is because we never bind to managed profile's incall UI, and bind
     to its parent user provided one instead. So phone account handle in
     managed profile is passed to it's parent user incall UI. And we need
     to allow parent user incall UI to retrieve the PhoneAccount from
     the handle.

4. Please notice that the default PA account related APIs does not really
   support multi-users. The backend (xml storage) does not include user
   as a key and it should be able to store one default only and is shared
   among all users. This problem is not fixed in this commit.

Bug: 25936882

Change-Id: Ia371723d68247a208a0c1185f6d02f1b5897946a
9 files changed