Refactor battery warning code to make it easier to read

Currently the logic for the hybrid warning and the legacy warning
is all mixed together and it makes it hard to understand what is
going on. This CL seperates that logic and also adds a immutable
data type to be used when evaluating whether a warning should be
shown rather than checking global variables.

Test: sysUI tests pass
Bug: 126149098
Change-Id: I3a781a4361b0d6a7e8a09e454fcf89a99c3fa175
8 files changed