Introduce computeOffsets() and reorderBuffers() to BufferGeometry.

computeOffsets() - Reorder the geometry index buffer and attributes so that all indices are referencing a maximum
reorderBuffers() - Reorder and grow the vertex attributes to adhere to a new index map.
Ref: #3524
CTMLoader can now properly load very large models by using now uses BufferGeometry's computeOffsets.

This ensures that all the index buffer uses only 16-bit addressable vertices per draw offset. The previous chunking algorithm referenced in the loader would create a huge amount of draw calls when large meshes would reuse many vertices.
Ref: #3524