Background exceptions fail tests, more utils.

Some tests rely on reporting failures from another thread; upstream
JUnit quietly eats these exceptions, which can result in misleading
"pass" signals when migrating existing tests.  To match the behavior
of a physical Android device, we now monitor for uncaught exceptions
and report them as test failures.

Some tests are relying on `ActivityManager` static methods, so offer
those on Ravenwood.  Leaves "current user" as `USER_SYSTEM` for the
moment, but we'll likely think more about how to customize it as
part of bringing a real `ActivityManager` online.

Some tests rely on `VibrationAttributes` which is a basic holder
object, so offer it on Ravenwood.

Tests to verify all of above.

Bug: 319647875
Test: atest SystemUiRoboTests
Test: atest SystemUiRavenTests
Change-Id: I1bc5bbc7b4eadf1c6d19c0044012a945ce377a20
10 files changed