Fix stale View tracking in ShadeViewDiffer

NSSL can independently re-inflate certain Views (such as section
headers) which will cause the View references tracked by ShadeViewDiffer
to become stale. This results in odd behavior when SVD compares its
tracked Views with the ones in NSSL.

The tracking serves as an optimization, so rather than maintain the
additional state across pipeline runes, we re-generate the View->Spec
lookup map once per run.

Fixes: 216150338
Test: 1. Have silent notifications in the shade
      2. Change the device theme.
      3. Dismiss all notifications 1 by 1
      4. Verify Silent Header is no longer visible once no more silent
         notifications are present.
Change-Id: I1e500e2868b6c4825dd6f7cc7e2d8cf61b831773
1 file changed