Prevent HDRLayerInfoListener traversal from running on every frame

We should only have to update the HDRLayerInfoListener in a few
scenarios.
    1. A new listener appeared
    2. A buffer changed colorspace
    3. Surface geometry (visibility, parenting, display, etc) changed
We protect the traversal behind these flags to avoid the runtime in the
hot path of continuous buffer updates. A follow up fix could consider
directly recursively traversing and early returning if !Layer->isVisible.

Bug: 186200583
Test: Existing tests pass, simpleperf
Change-Id: I549fdf6ea228344f79f6989b86b8e73a6065158a
3 files changed