GTask thread to initialize objects asynchronously to prevent that blocking operations might affect the UI (as per issue #239 (closed)).
Ideally I imagine all the other
GSimpleAsyncResult should be moved to GTask but this wasn't the point of this branch.
I moved all the objects to use GTask as well natively, although I think this part can even be optimized more by ensuring that the whole creation happens in a different thread and finally we finish on main thread. But for now, I'd prefer to keep things as this.