Added initial support for running on Android via Apportable.

Added support for APPORTABLE build setting. Added build setting
CC3_AV_CAPTURE_SUPPORTED to determine support for AVCapture... classes.
Added __APPLE__ build directive for Apportable. Removed GL_* defines from all
CC3* shader source, since Android GLSL compiler treats them as illegal.
Abstract CC3ViewController isOverlayingDeviceCamera property now readwrite.
Patch PVRT files for Apportable. CC3DataReader fills zeros if can't read elements.
Turn face culling off in CC3Scene close3DWithVisitor:, to fix issue with CCDrawNode,
which expects back faces to be drawn.
Make view framebuffers and renderbuffers compatible with Android.

Add CC3OpenGLES2IOS, CC3OpenGLES2Android, CC3OpenGLES1IOS and CC3OpenGLES1Android
classes to differ GL behaviour between iOS & Android. Android versions force
generation of pseudo-ID's for first framebuffer & renderbuffer during init.
Add CC3AndroidOnScreenGLFramebuffer & CC3AndroidOnScreenGLRenderbuffer.
Add Android support to CC3DemoMashUp.

Add configuration.json to Xcode projects: cocos3d-library-iOS, cocos2d-library-iOS
and CC3DemoMashUp-iOS. Add kCC3SemanticRedundant semanic. Do not add redundant
CC3GLSLVariables with non-zero subscripts to CC3ShaderPrograms. Reduce size of
messages logged by CC3ShaderProgram for Android limits. Removed additional GL_*
defines from CC3* shader source, since Android GLSL compiler treats them as illegal.
Adjust test for bone count in CC3Texturable.vsh to be compatible with Android GLSL.
Add addTexture: and reflectivity to CC3Node, passing down to contained mesh nodes.
Fix CC3Mesh alignTextureUnit:withTexture: to not adjust second texture assigned
to a single textureCoordinates.
Refactor layer sizing and orientation behaviour.

CC3UIViewController now assumes controlled CCNode covers entire view. CC3Layer
can be sublayer if to be sized smaller than full-view. Sub-layers no longer
attempt to change aspect when device rotates. CC3UIViewController now sets
contentSize of controlled node in viewDidLayoutSubviews to orient to device
rotations. Device rotation callbacks now ignored for setting layer sizes.
CC3ControlledNode viewDidRotateFrom: invoked from CC3UIViewController
didRotateFromInterfaceOrientation: instead of willRotateFromInterfaceOrientation:.
Removed CC3ViewportManager class and moved remaining reduced functionality
to CC3Layer updateViewport and CC3Camera.

CC3GLView sets surface bounds from its own bounds instead of retriving from
framebuffer, since not easily supported under Android. Surfaces now support
shouldUseDedicatedPickingSurface property to allow platform-view-surfaces
to require separate picking surface be created.

CC3NodeDrawingVisitor now expects contained camera & surface to be coordinated
externally. If camera viewport not set, CC3NodeDrawingVisitor will set it to
that of surface. Simplify CC3Camera view matrix, projection & unprojection
since device rotation no longer handled at scene and camera level.
C3DemoMashUp uses dedicated visitor & camera to draw scene to TV.

Fix CC3PureColor.vsh vertexToEyeSpace() function failures in Android.
Fix crash in CC3BitmapLableNode when changing label text.
Fix Android VAO issue & add Android app icon.

Add CC_TEXTURE_ATLAS_USE_VAO=0 to cocos2d configuration.json to fix VAO conflicts
during background loading under Android. CC3OpenGL binds VAO's only on foreground
thread. Add cocos3d icon to CC3DemoMashUp Android config.
Add support for platform-conditional GLSL code compilation.

Add support for platform-conditional GLSL code compilation. Use conditional
compilation in CC3MultiTextureConfigurable.fsh to fix multi-textured shader
under Android.
Add Android support to demo and template apps.

Add Android support to CC3Demo3DTiles & CC3Performance demo apps and
cocos3d Application Xcode template.
Fix CC3VertexArray releaseRedundantContent not clearing vertices pointer.

Ensure vertices pointer is cleared when releaseRedundantContent is invoked on
any vertex array. Move invocations of createBoundingVolumes to BEFORE invocations
of releaseRedundantContent in all demos and templates. Add further documentation
regarding use of CC3StartLoggingGLCalls() and CC3StopLoggingGLCalls() functions.
Fix bad texture realignment on mesh node copy after mesh content released.

On CC3MeshNode copy, don't use setters for mesh and material, to stop re-alignment
of texture coordinates that might have been discarded. Fix bad logging of
GL_DEPTH_COMPONENT enum value.
Remove gesture support in CC3DemoMashUp under Android.
Adjust position & size controls in demo projects to platform screen resolution.
Shadow volume enhancements & fixes.

Support adding shadow volumes on background thread. CC3DemoMashUp dynamic
shadow volumes added asynchronously on background thread. Fix flicker in
Android when shadow volumes first added. Add CC3NodeDrawingVisitor
alignShotWith: to coordinate two drawing visitors. CC3Scene aligns
shadowVisitor with main visitor before drawing shadows.
Support cocos2d 1.x & OGLES 1.1 on Android.

Add CC3Node shouldCastShadows property to allow individual nodes to avoid
casting a shadow. Don't add shadow volume if shouldCastShadows is NO. Adding
shadow volumes async dispatch back to main queue to add shadow volume to light.
Remove depth-texture post-processing from CC3DemoMashUp under OGLES1.
Add CC3OpenGL supportsExtension: method to test for supported extensions.