Correctly exit work queue on done, race condition fix.

done_ might've been set to true while processing the item, making the wait wait forever.
iOS: Don't try to use GLES3 for now.
Use guards, avoid the "not sure how" case.
Merge pull request #152 from unknownbrackets/shutdown

Race condition fix, iOS buildfix