power: Avoid doing impossible tests

We don't need to check 3 times for different values of state
if we managed to match the first one.
power: Avoid warning with no batteries

When we have no batteries, don't use an uninitialised state value.
power: Fix battery state with multiple batteries

When using 2 batteries, one charging, one discharging, the overall
state should be "discharging".
power: Use a real mutter in our tests

Instead of a fake one that doesn't implement the necessary
idle time APIs.
tests: Fix implementation of CanSuspend/CanHibernate

Those aren't properties, they're methods!!!
power: Fix tests relying on no external monitors

The old XRandR code would tell us that there's no external monitor,
but not the new one.
power: Fix tests relying on hibernation

We set ourselves up as not supporting hibernation, but supporting
suspend. As hibernation preferences fall back to PowerOff when
CanHibernate is false, we'd need to either check for PowerOff as well,
or force using suspend by default. We did the latter.
power: Disable failing test_unindle_on_ac_plug test

It seems to be broken for now, despite the output of the helper
being correct, disable it for the release.