searchController: Avoid opening multiple instances at once
When searching from overview, if a search result is activated multiple times (by quickly hitting enter, by fast mouse click, or both) while the overview is still animating out, multiple instances will be opened under certain circumstances (e.g., non-GNOME applications).
This fix checks that no other launches started from the search results view are ongoing before activating a search result, by connecting to the 'hidden' signal, emitted at the end of the overview ease-out animation.
I tried to be concise, but also to abstract a little bit by exposing some properties and methods and by using signals instead of directly checking the value of Overview.animationInProgress property.
According to my testing, there should be neither regressions nor other side effects.
Closes #2193