Add Preconditions and Nested Subscriptions.

This changelist introduces two concepts: Preconditions and Nested
Subscriptions. Preconditions are allow for a Subscription active
state (following its condition(s) changes) to be predicated on a
set of conditions first being true. Preconditions can be set on
both individual Subscriptions and entire Monitors to apply to all
added Subscriptions. Nested Subscriptions allow for the callback
of one Subscription to be the activation of another Subscription.

Bug: 261420432
Test: atest ConditionMonitorTest
Change-Id: Ifbe498bab144c60a88e5e2e2e570325300c9b953
2 files changed