effects/slide: Ensure that there's only one visibility ref per window
If a window is added and then the current virtual desktop changes, we can encounter the following situation:
- desktopChanged signal is emitted, and the slide effect starts animation. SlideEffect::prepareSwitching() will setup windows; note that the new window may be present in effects->stackingOrder()
- windowAdded signal is emitted, and slide effect tries to ref the window again
In order to ensure that there's only one reference, maintain visibility refs in a hashtable.