Add pre-loading of shaders to fix unexpected pause during mid-scene loading.

Add pre-loading of shaders to fix unexpected pause during mid-scene loading. CC3Cache
can store both weak and strong links. CC3Cache can clear entried of a particular type.
Add isPreloading property to resource, texture & shader caches to allow them to be
selectively cached weakly during normal cache operation, or strongly if pre-loading
in advance of use. Add ability to reset GL state on shader programs and GLSL variables.
Reset GL state on shader program after pre-warming on background thread, to ensure
foreground state is accurate. Add CC3ShaderContext shouldEnforceVertexAttributes
property. CC3Node doesIntersectFrustum: now returns YES if either node bounding
volume or frustum is nil.
Add CC3OpenGL releaseShaderCompiler & shader var range queries.

Add CC3OpenGL releaseShaderCompiler & shader var range queries. Don't log
redundant GL info when starting background GL context. Move prewarmer ivar
to CC3OpenGLProgPipeline. Fix CC3DemoMashUp cylindrical text blending.
CC3Backgrounder now uses GCD queue.

CC3Backgrounder now uses GCD queue with settable queue and thread priority.
LogRez loading times in milliseconds. LogRez mipmap generation timing.
Fix cube-map texture name from pattern. Add debug logging of timings.
CC3DemoMashUp rename preloadShaderPrograms to preloadAssets and preload some textures.
Performance improvements in automatic environment maps.

Don't generate all six env map sides on first frame, which caused stall.
Reduce texture sizes in CC3DemoMashUp to reduce memory requirements.
Ensure textures and buffers are unbound in state tracker when they are deleted.

Ensure textures and buffers are unbound in state tracker when they are deleted.
Add CC3OpenGL disableTexturingAt: and invoke from disableTexturingFrom:.
Add elapsed scene time to CC3Scene and shader semantics.

Add CC3Scene elapsedTimeSinceOpened property. Rename kCC3SemanticApplicationTime...
semantics to kCC3SemanticSceneTime..., and base them on elapsedTimeSinceOpened
property of the scene.
Fix 2D bindings after 3D loading.

Unbind GL buffer after creating and populating it from a vertex array.
Move aligning 2D GL state from CC3Scene to CC3OpenGL alignFor2DDrawing.
Increase log alert for long scene draw to 0.0667 (15 fps).
Fix flicker during device rotation when using additional render surfaces.

Ensure default render surface is active after resizing surfaces on device rotation.
Add scene drawing and async loading methods to cocos3d Xcode project templates.
Remove dependency of LogGLErrorTrace on GL_ERROR_LOGGING_ENABLED build setting,
Remove dependency of CC3StartLoggingGLCalls and CC3StartLoggingGLCalls on
GL_ERROR_TRACING_ENABLED build setting.
Fix missing brace in if-stmt in CC3ShaderProgram populateUniforms:withVisitor:.
Make CC3Demo3DTiles demo app compatible with latest code.

Make CC3Demo3DTiles-iOS demo app compatible with latest code.
Add CC3Demo3DTiles-iOS project back into cocos3d-iOS Xcode workspace.
CC3ShaderProgramMatcherBase programForMeshNode: now ensures material
and sets shader program in material. Update README.md.
CC3MeshNode populateFrom: method does not autorelease material.
CC3Node copyChildrenFrom: does not autorelease child copies.
CC3MeshNode ensureMaterial & makeMaterial methods now public and return material.
Make CC3Performance demo app compatible with latest code.

Make CC3Performance-iOS demo app compatible with latest code.
Add CC3Performance-iOS project back into cocos3d-iOS Xcode workspace.
Add support for two-sided lighting.

For OGLES 1.1, add CC3OpenGL enableTwoSidedLighting: and invoke from CC3MeshNode.
Add kCC3SemanticShouldDrawFrontFace & kCC3SemanticShouldDrawBackFace shader semantic.
Add boolean vectors to CC3GLSLUniform. Add v_colorBack varying to CC3Texturable.vsh.
Frag shaders use gl_FrontFacing to select between v_color and v_colorBack.
Optimize fragment shader color precision. Optimize CC3Texturable.vsh vertex shader.
Optimize all shaders. Query and log platform max shader uniforms & varyings.
Add setting boolean vectors to CC3GLSLUniform. Retrieve uniform storage
requirements from CC3GLSLVariable and CC3ShaderProgram. Rename CC3Shader
platformPreamble property to defaultShaderPreamble.
CC3DemoMashUp floating ring and cylinder text show two-sided lighting.
Init CC3Billboard with shouldUseLighting, since cocos2d nodes have no normals.
Move resetting GL culling, lighting & depth testing from CC3OpenGL
alignFor2DDrawing method CC3OpenGL to CC3Scene close3DWithVisitor method.
Fix GLSL fog for textures with pre-mult alpha.
Add public CC3MeshNode ensureMesh and makeMesh methods.
Fix fade-in of models in CC3DemoMashUp under OGLES 1.1.
Add support for kCCiOSVersion_5_0 in cocos2d 1.x.
Fix positioning of CC3Layer as sublayer on Retina displays.
Ensure camera projection has been built whenever CC3Camera projectionMatrix is accessed.
Fixes to material properties when transitioning to 2D.

Ensure cube textures unbound when transitioning to 2D. Ensure alpha testing
off when transitioning to 2D. Ensure tex unit bound when setting tex unit env
params in fixed render pipeline.
Rebuild CC3Frustum infiniteProjectionMatrix when viewport changed.

Mark both CC3Frustum infiniteProjectionMatrix and finiteProjectionMatrix dirty
whenever a contributing property changes. Lazily build each matrix independently.
Various minor fixes from version testing.

Cast CCTexture2DPixelFormat to GLuint before testing for cocos2d 1.x.
In CCNode globalBoundingBoxInPixels extension, don't scale rect origin under
cocos2d 1.x. Remove tangent texture of dragon in CC3Demo3DTiles & CC3Performance
under OGLES 1.1. CC3Performance supports all device rotations. Add FPS texture
files to cocos3d2 template apps. Change GLSL var a_cc3Color to mediump for
compatibility with some devices.