texture: Simplify asynchronous loading code
texture: Simplify asynchronous loading code

The asynchronous loading code could do with some modernization.

First of all, we should drop the internal GMutex held when manipulating
the boolean flags: it's far too expensive for its role, and modern GLib
provides us with bitlocks that are quite a lot faster.

Then we should consolidate most of the implementation into something
smaller and more manageable.

heysion/clutter-clone,djdeath/clutter-multithreaded,jigpu/clutter,kerrickstaley/clutter-vala,kerrickstaley/clutter-vala,heysion/clutter-clone,djdeath/clutter,kerrickstaley/clutter-vala,djdeath/clutter-android,collects/clutter,GNOME/clutter,jigpu/clutter,jigpu/clutter,djdeath/clutter-multithreaded,ebassi/clutter,Distrotech/clutter,Distrotech/clutter,GNOME/clutter,djdeath/clutter-multithreaded,djdeath/clutter,collects/clutter,ebassi/clutter,GNOME/clutter,djdeath/clutter-android,djdeath/clutter-android,jigpu/clutter,jigpu/clutter,ebassi/clutter,collects/clutter,kerrickstaley/clutter-vala,collects/clutter,ebassi/clutter,Distrotech/clutter,ebassi/clutter,djdeath/clutter,heysion/clutter-clone,GNOME/clutter,Distrotech/clutter,djdeath/clutter,Distrotech/clutter,djdeath/clutter-android,heysion/clutter-clone,djdeath/clutter,jigpu/clutter,heysion/clutter-clone,collects/clutter,djdeath/clutter-android,djdeath/clutter,djdeath/clutter-multithreaded,GNOME/clutter,Distrotech/clutter