Initializing mode descriptor cache in-place is racy and may cause a thread to
observe a partially constructed cache if another thread is pre-empted while
it's still constructing the cache. In this change, the mode descriptor cache is
constructed into a local variable instead and then set globally in a single
atomic operation, preventing any possibility of observing an incomplete cache.
In py3k, imports are absolute unless using the "from . import" syntax.
This commit also solves a recursive import between Image, ImageColor, and
ImagePalette by delay-importing ImagePalette in Image.
I'm not too keen on this commit because the syntax is ugly. I might go back
and prefer the prettier "from PIL import".