power: Check that the output is connected when determining if it's ON

It might happen that there's no device connected and yet the CRTC
associated with an output has a valid mode.

RRGetOutputInfo tells us if the hardware was able to detect a device
connected to the output so let's use that.

Note that in versions newer than 3.8, this check isn't required since
the list of outputs that we get from mutter's DisplayConfig interface
is already filtered by mutter and doesn't contain any disconnected
outputs.

https://bugzilla.redhat.com/show_bug.cgi?id=1081093
power: Cancelling a temporary unidle shouldn't set an idle mode

The caller already knows which idle mode it wants us to move to.

Automatically going back to the previous idle mode here would at best
cause a quick spurious idle mode switch which would be immediately
overriden by the caller or, at worst, we could go into suspend if the
previously saved mode was SLEEP.

The latter could happen on resume from suspend because there's a race
between idle_became_active_cb() and handle_wake_up_screen(). If the
second wins the race then we'd set a teporary unidle with the previous
mode being SLEEP, meaning that when idle_became_active_cb() cancels
the temporary unidle afterwards we'd immediately move to SLEEP again.

https://bugzilla.gnome.org/show_bug.cgi?id=729024