[pushModal] Fix rare bug which manifests when exiting modal state

When exiting modal state, Cinnamon sometimes issues the following messages, after which
any subsequent attempt to enter modal state again, such as opening Alt-Tab, will cause
Cinnamon to hang. This is caused by the handler that cleans up after a window in the focus
chain has been closed, which removes the wrong window from the focus chain;
instead of removing the destroyed window it removes the window that was made modal when the destroyed
window had focus. This bug was inherited from Gnome Shell.

Window manager warning: Log level 16: /build/buildd/glib2.0-2.32.3/./gobject/gsignal.c:2572: instance `0xbb78950' has no handler with id `92896'
JS ERROR: !!!   Exception was: Error: incorrect pop
JS ERROR: !!!     lineNumber = '1002'
JS ERROR: !!!     fileName = '"/usr/share/cinnamon/js/ui/main.js"'
JS ERROR: !!!     stack = '"popModal([object _private_St_Bin])@/usr/share/cinnamon/js/ui/main.js:1002
()@/usr/share/cinnamon/js/ui/windowManager.js:1033
([object _private_St_Bin],[object _private_Clutter_Event],false)@/usr/share/cinnamon/js/ui/windowManager.js:1103
([object _private_St_Bin],[object _private_Clutter_Event])@/usr/share/gjs-1.0/lang.js:116
"'
JS ERROR: !!!     message = '"incorrect pop"'

[pushModal] Don't meddle with the modal-actor stack.

Having looked at the gnome-shell commits, I see that the
intent is to set the focus actor to null, which I accomplish
in a more straight-forward way than they do. Thus, we don't need
to call _findModal at all.
Modal stack: fix handling of destroyed actors

Destroyed modal actors should be completely removed from the modal
stack automatically, including leaving modality if needed.
This allows for destroying modal dialogs without calling close().

https://bugzilla.gnome.org/show_bug.cgi?id=619955
[popupMenu.js] Check the return value of Main.pushModal

This may prevent subsequent "incorrect pop" incidents.
Merge branch 'pushmodal-fix' of https://github.com/autarkper/Cinnamon