Create our shader cores lazily.
Create our shader cores lazily.

This has two benefits: one, we avoid crashing if someone tries to create a
shader during Game.init, when GL is not ready to compile shaders; two, we avoid
creating a color core if a shader is only ever used to render textures.

Plus, when I get around to implementing resource management (so that custom
shaders are not giant resource leaks); we'll need to be able to destroy and
recreate the shader cores as a shader gets used and unused.

KoriSamui/PlayN,KoriSamui/PlayN,KoriSamui/PlayN,KoriSamui/PlayN