allow mutex lock/unlock functions to be hooked by the user
island manager: make 2 methods virtual so they can be overridden
btThreads: add C++11 based threading
AlignedObjectArray: added expandNonInitializingThreadsafe method
solver: add fully lock-free mode for ConvertContacts
changed to a mutex based on atomics that never puts worker threads to sleep
removed mutexes from solver, lock-free approach is faster and simpler
fix compile error in assert
simulation island manager refactor for multithreading
In order to simulate multiple islands at once, all the islands need to
be defined up front, and cannot sequentially reuse the arrays of bodies, manifolds
or constraints.
 - A new Island structure is introduced inside the btSimulationIslandManager
class to hold the various bodies, manifolds and constraints for each
island.
 - The functionallity for merging islands that existed in the
InplaceSolverIslandCallback (used by btDiscreteDynamicsWorld) has been
moved into the btSimulationIslandManager class (which also allowed the
removal of duplicate code from the multi-body dynamics world).
 - By assembling all of the Islands up front, it was possible to eliminate
the sorting of manifolds and constraints by island-id.  These sorts are
simply replaced with a single walk over the unsorted objects, distributing
them to the appropriate island.
 - Note that the btSimulationIslandManager files really do not belong under
BulletCollision -- the class is only referenced by the discrete and
multi-body dynamics worlds.  And now that the island manager makes use
of btTypedConstraint objects (defined in BulletDynamics), it makes even
less sense.
simulation island manager: added overrideable function for island dispatch
impulse constraint solver: fixes for the threaded solver
  - increased preallocation for rolling friction constraints array
  - removed needless extra pass over body array to set companionId to -1
  - cleaned up the usage of initSolverBody()
  - disabled threaded solver until kinematic object issue can be fixed
  - added comments
aligned obj array: added a missing const
deleted incorrect comment
btThreads: stripped out unused code; added comments
multi-threaded-demo: solve islands in parallel + other fixes and comments