[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.
Remove cheese init functions from cinnamon settings, remove some
unneeded imports
Fix warnings in st_background_effect.c

Add <math.h> to fix implicit declaration of round()

Add extern definitions for cogl_pipeline_set_uniform_1i(),
cogl_pipeline_set_layer_combine()

Add explicit cast of vertical_FRO to CoglFramebuffer* type (this is a
baseclass conversion which is valid and fixes a warn-as-error issue when
building).
[Multiple Workspace Rows] Shorten the wait for a prolonged key press
Merge branch 'pushmodal-fix' of https://github.com/autarkper/Cinnamon
Merge branch 'st-background-effect-cleanup' of https://github.com/wrouesnel/Cinnamon
Merge pull request #1827 from mtwebster/applets-user-accounts

Remove cheese init functions from cinnamon settings, remove some
Merge remote-tracking branch 'upstream/master'