BUG-1493: Add test suite documentation

This patch adds some sorely needed documentation.

Change-Id: I2cdf5122ba861b083203f82336300736e824ca3d
Signed-off-by: Robert Varga <rovarga@cisco.com>
BUG-1493: split off recursion tracking and rework it

This patch reworks tracking of recursion state into a separate class.
This allows us to unify the four call sites and provide a simple
heuristic. A state object is allocated each time we enter a new child
and its buidlers are collected when we emerge from it -- resulting in
more accurate event reporting, eliminating false positives.

Further optimization allows us to stop recursing as soon as we know no
listeners are affected by the outcome at a particular level.

Change-Id: I2be29cebb79892c85a22e79b18c2e62f77bfb7d4
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "BUG-1493: Add test suite documentation"
Merge "BUG-1493: split off recursion tracking and rework it"