Refactor flexible skinning

This commit improves the flexibility of the animation system by allowing any Object3D instance 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.

For prior discussion, see issue #4782:

https://github.com/mrdoob/three.js/issues/4782