Cancel dim animations directly from runner + verbose logs

There have been unexplained NPE due to the access of released dim
surfaces from the animation. Cancel the animation directly from the
SurfaceAnimationRunner to reduc the likelihood of unsynchronized code
changing the state of the surface.

Track the most relevant lifecycle events to detect anomalies in surface
access in case this happens in the future. Currently this is not
debuggable when the issue is not easily reproducible, so we introduce
some verbose logging to be able to analyse the state of the dim at the
time of the crash

Test: DimmerTest
Bug: 377592988
Flag: EXEMPT logic is the same
Change-Id: I67ecd3b813015cd5bb5a247e5b7a20e8647f5e03
3 files changed