prevent concurrent GL-calls

This can be caused by garbage collector when it finalizes ImageGL and SurfaceGL objects
It's unfortunate that Activity.runOnUiThread() actually runs the runnable if the activity has already exited. I hate to introduce another boolean, but maybe I'll disguise it as a State enum so that at least we don't introduce additional nonsensical states.