Move cursor to ingame gui

The cursor is part of the GUI, moving it means we can further separate
the game handling from the presentation.
tests: Remove hook to make imports from horizons.gui dummy objects

Because we can now pass the IngameGui class to use in a session,
patching all of horizons.gui becomes unnecessary.
Move LastActivePlayerSettlementManager to ingamegui
Add missing call to destroy city info widget

Will remove subscriptions to multiple messages in the widget.
Move icon managers to ingame gui
Drop the specific setting messages in favor of SettingChanged
Fix typo when unsubscribing from message in minimap

Small typo introduced in 435a19d58b7e5cac0ab2cffe610ff6e6a7a33d25
Move coordinates tooltip reference from session to ingamegui
Fix crash in production icon manager when ending the game

To avoid duplicating code, `end` will call `disable`, however that
function assumes that at some point, `enable` was called and therefore a
subscription to that message exists.
Move sound shutdown into the Sound class itself
Add missing attribute to editor gui

In commit 283ede7d62797cb1fac865c376ca6bbdfc91eac9 the attribute was
moved to the ingamegui from the session. The editor uses cursors as
well, therefore it's ingame gui needs that attribute too.
Move 'new world' message to ingame gui
Fix crash in editor

The editor uses NavigationTool, which uses the
LastActivePlayerSettlementManager.

Also remove the MessageWidget mock, hopefully no code uses that anymore
in the editor.
Fix two development scripts, move third into `misc` repo
Move a patch to our misc repository

If this is not tracked as branch, there is little point in storing
patch files.
Move dialog creation code to a new WindowManager
tests: Stop MP server from printing to the console
"path" support for ImageButton

Removes the need to specify all of {up,down,hover,inactive}_image
Instead just pass the base image path (no content/gui/ and no .png
extension) and the code hopefully figures out what you meant :)

Todos:
* make it not ugly
* move over ToggleImageButton to imagebutton.py
* split all other custom ImageButtons into own file
Convert markup to new ImageButton features
Rename a few files

Should now be more consistent, up_image files usually have no suffix.