31/n: Move Fingerprint2.1 into a wrapper with its own scheduler

This is a pretty big change since it basically allows/requires us to
have FingerprintService not extend from BiometricServiceBase anymore

Bug: 157790417
Bug: 158481661

1) Move Fingerprint2.1-specific code into wrapper class. This will
   A) Make it obvious where global dependencies still exist, and
   B) Make room for new HIDLs
2) Sensor-ID is creeping in. Eventually there will be Manager-level
   APIs for platform code to query functionality. Most likely all
   IFingerprintService/IFaceService interfaces will have sensorId
   as a parameter soon
3) Added Udfps interface and UdfpsHelper
4) FingerprintService no longer extends from BiometricServiceBase.
   BiometricServiceBase will be removed soon. A lot of permission
   checking is fingerprint-specific, since face operations all
   require internal permission. Thus, moved canUseBiometric into
   FingerprintService
5) Updated fingerprint retry logic in KeyguardUpdateMonitor. The
   retry should keep going if isHardwareDetected()==false. Also
   increased the retry counter, seems like HAL reload time has
   increased.

Test: enroll, auth (settings), auth (keyguard), auth (BiometricPrompt),
      rename, remove
Test: atest com.android.server.biometrics
Test: atest KeyguardUpdateMonitorTest
Test: Reset lockout
Test: atest AccessibilityFingerprintGestureTest
Test: Fingerprint stack recovers after HAL death, e.g.
      1) Go to keyguard
      2) adb shell ps | grep -i fingerprint
      3) adb shell killall -9 android.hardware.biometrics...
      4) fingerprint auth resumes after HAL reloads
Test: CtsVerifier
Test: adb shell dumpsys fingerprint
Test: Modify settings to not cancel auth when onPause, notice
      task stack listener stopping settings auth
Test: Invoke assistant on keyguard, auth continues
Test: No effect on face auth devices (enroll, auth on keyguard,
      BiometricPrompt)

Change-Id: Iffbdd841c093fe612e664195dcf79319d1d444ab
25 files changed