Fix initialization order for interfaces running on the main thread
Some interfaces like on mac os really need to run on the main thread, as this is enforced by the frameworks. Even if running qt in a separate thread kind of works, it would be preferable as well if it can run on the main thread.
Currently, all interfaces return from open() after initialization, with the exception of macosx which blocks on open. Afterwards, on linux/win the playlist gets started. This does not work with the osx interface as open never returns.
This mixture in behaviour in open() makes it really hard to get a consistent user behaviour (considering command line calls which either want to use the default interface like qt/macosx, or maybe only use command line or rc, or a combination).
Somehow, a solution should be found here, to unify the semantics of an interface open() call. Alternatively, we might need a stricter separation between cli usage (without the main interfaces) and graphical usage. Currently, on OS X the playlist is started before the interface is started. This somehow works with hacks, but is not the best solution either as events might be missed and the initialization order is not clear.