This commit improves the flexibility of the animation system by allowing any
Object3D instace to be used for skinning--not just Bone instances.  Furthermore,
this commit removes the restriction that a SkinnedMesh can only be skinned by
child objects/bones.  Now, a SkinnedMesh can reference arbitrary objects for the
purpose of skinning.  One implication of this is that Bone.skinMatrix has been
removed as it is no longer necessary.

Here is a breakdown of the notable changes:

src/extras/animation/Animation.js
* Fixed animation of non-bones
* Removed references to skinMatrix

src/extras/animation/AnimationHandler.js
* Removed special handling of SkinnedMatrix instances

src/extras/animation/KeyFrameAnimation.js
* Removed special handling of Bone instances
* Removed references to skinMatrix

src/extras/helpers/SkeletonHelper.js
* Removed references to skinMatrix and Skeleton

src/objects/Bone.js
* Removed references to skinMatrix

src/objects/Skeleton.js
* Removed entirely, refactoring functionality back into SkinnedMesh

src/objects/SkinnedMesh.js
* Re-added code to construct the skeleton hierarchy when it is present in the geometry object that is passed to the constructor.  This is here for backwards compatibility and could be refactored at a later time.
* Added bind() function that takes an array of bones (Object3D instances) that are used to skin the mesh.  This function establishes the initial bind transforms of the mesh and bones.
* Added initBoneInverses() function that is used internally by bind() to calculate the bind matrices.
* Added initBoneMatrices(), which contains refactored code that previously existed in the constructor (prior to the THREE.Skeleton refactor).  This code sets up storage for the bone matrices and/or texture.  It is used internally by bind().
* Added updateBoneMatrices(), which is called by the renderer after the scene's world matrices have been updated.  This is done in a separate pass because SkinnedMesh can depend on objects that are stored anywhere in the scene hierarchy, not necessarily child objects.

src/renderers/WebGLRenderer.js
* Call updateBoneMatrices() on SkinnedMesh instances after world matrices have been updated
* Removed references to Skeleton
Merge branch 'dev' into refactor_flexible_skinning

Conflicts:
	build/three.js
	build/three.min.js
Re-added special handling of SkinnedMesh.
This commit re-introduces THREE.Skeleton to decouple bone/object transformations
from the transforms that bind a THREE.Skeleton to a THREE.SkinnedMesh.  This
allows us to animate multiple THREE.SkinnedMesh instances with a single
THREE.Skeleton.

Here is a summary of the major changes:

extras/helpers/SkeletonHelper.js
* Fixed code mistakes (missing 'THREE').

objects/Bone.js
* Removed duplicate code that is already in THREE.Object3D.

objects/Skeleton.js
* Not a descendant of THREE.Object3D (previous version was).
* Stores boneMatrices and boneTexture.
* Independent of THREE.SkinnedMesh.

objects/SkinnedMesh.js
* Refactored boneMatrices and boneTexture related code into THREE.Skeleton.
* Added two bind matrix modes: "attached" and "detached".

renderers/WebGLRenderer.js
renderers/webgl/WebGLProgram.js
* Attach bindMatrix and bindMatrixInverse to shaders.

renderers/shaders/ShaderChunk.js
renderers/shaders/ShaderLib.js
* Use bind matrices during skinning.
Re-added Skeleton and SkeletonHelper to includes.
Merge branch 'dev' into refactor_flexible_skinning
Merge branch 'dev' into refactor_flexible_skinning

Conflicts:
	build/three.js
	src/extras/animation/Animation.js
	src/objects/Skeleton.js
Reverted three.min.js.
Reverted three.min.js to the version stored in dev.
Update camera uniforms only when really necessary

This saves redundantly setting some uniforms when changing materials that
share the same program, reducing CPU usage. This can give a significant
performance boost on devices which have a higher-performance GPU compared
to the CPU, such as Tegra K1.
cleanup loader
Merge pull request #5023 from gero3/patch-26

cleanup loader fixes #4926
Update GeometryUtils.html

typo
Fixed ColladaLoader.
Merge branch 'optimize-uniform-updates' of https://github.com/NVIDIA/three.js into dev
Updated builds.
Merge pull request #5025 from netantho/patch-1

Update GeometryUtils.html
Fix include order in non-default builds

Frustum depends on Sphere, so Sphere must be first in the source list
for the non-minified three.js to work.
Make build scripts set working directory automatically and handle failure

The sh and python scripts can now be run without changing the working
directory to utils/build.

This commit also cleans up build.py a bit and adds basic detection of
Closure compiler failure, which can happen when running the script with
an outdated Java version.
Merge pull request #5029 from NVIDIA/fix-include-order

Fix include order in non-default builds