Add base impl of new ready tracker
This introduces a new ReadyTracker class based around tracking
explicit conditions instead of an arbitrary set of heuristics
mixed with legacy.
Usage involves constructing a ReadyCondition and adding it to
a transition's tracker. Once the condition is met, call `meet()`
on the condition.
The new ReadyTracker considers the transition ready if there
was at-least one condition added and all the added conditions
have been met.
This is just the base implementation so it isn't really
functional yet. This does add ready-conditions in most of
the places where the old method's defer/continue were used.
Bug: 294925498
Test: atest TransitionTests
Change-Id: I6cbd9152d03e707e0e7134fa8ada2902e5af847e
9 files changed