Fix invalid native manifold delete bug

active unmanaged manifolds were being deleted at garbage collection.
Formatting & minor fixes.
Implement custom ray callback classes. RayResultCallback, AllHitsRayResultCallback, etc. can now be inherited.
Move callback classes out of the CollisionWorld class.
Unify references to the System::Collections namespace.
Use List<T> built-in enumerator instead of ListEnumerator<T>(List<T>).
Implement custom convex callback classes. ConvexResultCallback and ClosestConvexResultCallback can now be inherited.
Add DebugDrawModes.DrawFrames.
Add raycast test.
Remove ObjectTable-based wrapping of DebugDraw objects.
Fix conditional compilation with DISABLE_DEBUGDRAW.
Store DispatchInfo reference for NearCallback.
Add proper OverlappingPairCallback destructor.
Start removing ": IDisposable". C++/CLI already implements it if the class contains a finalizer/destructor pair.
Remove ITrackingDisposable interface from CollisionWorld.
Merge pull request #4 from VirusFree/pull_request2

Fix invalid native manifold delete bug
Fix CollisionAlgorithm destruction.
Add GhostObject test.
fixes for double precision
add Move() for characters
Add IsEnabled for KinematicCharacter
fix matrix math
get shapes from contact point
report manifold contact count (as to avoid getting manifold in c# just to check contact count)
add scale setter for UniformScalingShape
add helper to compute compound shape connectivity