Associate user id with unlock token handle

Note: this assumes user-0 is always unlocked otherwise one would not
be able to access shared preference for user-0 when cold booted to lock
screen.

To test this CL, turn on the following system property

android.car.systemuser.headless=true

This build flag will make Android boot into a headless user-0 model and
user-0 will always be unlocked.

Bluetooth stack gets restarted every time switching user. This CL also
ensures the BLE trust agent service is started after bluetooth finishes
rebooting.

Current limitations:
- Unlock token works only if user sets password
- Unlock token is not activated till user finishes lock-unlock once

Bug: 78602296
Bug: 77854782
Test: unlock user by trust device on Mojave
Change-Id: Ifc2bf97593adbb77d518d6b11c06ea5234a4ebbd
5 files changed