CTS tests for notification trampoline block

Created companion service in helper app that will post notifications for
service and broadcast receivers and trigger activity starts inside those
components, while communicating back to the test app. Had to create a
separate app due to BAL exemptions that the test had and the helper
apps had: active instrumentation (from shell) exemption and SAW in the
case of helper app.

Created base android library with the service and 2 apps that depend on
the base, one for each targetSdk of 30 or current.

Decided to go with a bound service since the binding makes sure the
lifecycle of the service is the same as the test, plus it doesn't have
to go through queue traffic.

Added some synchronization to TestNotificationListener because it was
causing my tests to fail and wanted to avoid the timeout pattern present
in some other tests. Coincidentally it appears that the whole suite is
not flaky locally anymore (before some random tests would fail).

Test: atest NotificationManagerTest
Bug: 167676448
Change-Id: I2c76aeabece8d70304fce3c6fe430a740b2df411
11 files changed