IdleMonitor: protect watches from being freed while in flight

If you added an idle watch and then immediately removed it, it
was possible that the watch was freed before the dbus call was
handled by mutter, thus causing a crash later one.
Prevent that by reference counting the watch structures.

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