backend: Pre-emptively create idle monitors based on clutter events

Rather than have the DBus code control this, move this into
MetaBackend. This also lets us destroy idle monitors when appropriate,
rather than leaking them forever.