Fix vector assignment in constraint solver

Fix instances where vectors were being assigned by reference rather than
value. This is important for when we want to use a memory pool for the
SolverConstraints.
Fix DbvtVolume assignment in updateLeafVolume

Add assign member to DbvtVolume and use it to fix incorrect reference
assignment in updateLeafVolume.
Add something to start debugging performance

Page loads a physics world with 25 boxes a few units above a stationary
box and drops them down. mrdoob/stats.js helps monitor fps. This commit
also comments out the debug logic in CollisionDispatcher and the warning
messages in dBoxBox2, as they skew the timing results.
Remove allocations that occur every physics step

Object creation is rather expensive, and makes up a lot of the time in a
given frame, according to Chrome's CPU profiler.

This commit removes allocations from the following functions:

  - SequentialImpulseConstriantSolver
    - solveSingleIteration
    - setupFrictionConstraint
    - setupContactConstraint
    - setFrictionConstraintImpulse
    - convertContact
  - CollisionWorld
    - updateSingleAabb
  - DbvtBroadphase
    - Broadphase.setAabb
  - BoxBoxCollisionAlgorithm
    - processCollision
  - BoxBoxDetector
    - getClosestPoints
    - dBoxBox2
  - ManifoldResult
    - addContactPoint
Remove Vector3 property usage in BoxBox

Optimize the dDOT, dDOT41, and dDOT14 functions to not use the faked
array notation for access, as this is much slower than just accessing
the property directly. This makes them less general, but they are only
used inside of BoxBoxDetector.js.
Use a memory pool for the SolverConstraints

This greatly reduces the number of allocations every iteration of the
constraint solver by caching unused instances of SolverConstraints,
rather than letting the GC pick them up.
Reorganize tests folder

Add a js subfolder to house non-unit tests used by test files.
Make floor kinematic in performance test
Merge branch 'develop' into fix-performance
Fix regression from 3bb550b

Incorrect assumption of which arguments were Vector3s in dDOT. dDOT
separated out into dDOTVA and dDOTAV, depending on which argument is the
Vector3.
Consolidate ground to a single compound shape

Use a single compound shape for the room. Also set the room to spin
erratically.
Add rendering of performance test

Add a THREE.js renderer to visualize what the simulation is doing.
Fix memory leak in OverlappingPairCache

Use the destructor for the collision algorithm when cleaning up after
overlapping pair caches.
Remove object allocations

Remove allocations in the following areas:

  - CompoundCollisionAlgorithm
    - processCollision
  - CompoundLeafCallback
    - ProcessChildShape
  - CollisionDispatcher
    - defaultNearCallback
  - Dbvt
    - collideTTpersistentStack
Avoid getter property usage in getRotation
Fix temporary variables in CompoundCollision

Because CompoundCollisionAlgorithm can be recursive nested like Russian
matryoshka dolls, there cannot be global temporary variables used by all
CompoundCollisionAlgorithms. A pool is set up for it, allowing nested
calls to not clobber one another's temporary variables.
Remove allocations

Remove object allocations in:

  - Dbvt
    - Proximity
    - updateLeafVolumeMargin
    - updateLeafVolumeVelocityMargin
  - DiscreteDynamicsWorld
    - synchronizeSingleMotionState
    - integrateTransforms
  - RigidBody
    - integrateVelocities
  - CompoundCollisionAlgorithm
    - processCollision
    - ProcessChildShape
  - BoxBoxCollisionAlgorithm
    - processCollision
  - CompoundShape
    - getAabb
Make the performance test consistent

Remove the randomness introduced by getting the current time. Also
switched to using an absolute fixed timestep for the simulation.
Remove temp references in solveSingleIteration

They don't seem to improve the performance and just makes the code
slightly harder to understand, so they have been removed.
Merge branch 'develop' into fix-performance