Fixed screensaver_pause dbus reference.

The lazy import of dbus wasn't available at the module level, so
except clauses in other methods raised a NameError when handling any
exception.
Simplify screensaver_pause's disconnect_events()

By holding on to the SignalMatch objects returned by
add_signal_receiver() we can just call the SignalMatch.remove() method
instead of repeating the same arguments in both connect_events() and
disconnect_events().
Handle nested signals in screensaver_pause.

In Unity, (and I would assume also in other combinations that will be
added in the future,) the lock signal and the screensaver signals occur
independently but can also occur at the same time. This keeps a count of
lock/unlock (screensaver on/off) pairs and ensures they are balanced
before resuming playing.