Refactor doze suppressors into its own class

There are multiple ways doze/aod can be suppressed/blocked. This
CL consolidates the majority of the logic to DozeSuppressor.java
and breaks apart the terminology `doze suppressed` (which refers to
the entire doze experience) from `always on suppressed` (which refers
to only suppressing always-on-display, but continuing to register
for wake-up-gestures).

+ Added DozeSuppressorTests
+ Added extra logging to DozeLog

Test: atest SystemUITests
Test: atest DozeSuppressorTest
Bug: 218509239
Change-Id: I8cec55d57b67a6e171849febabf8e92804d74f4e
11 files changed