make createPredictiveContacts virtual for profiling
island mgr: use body count to combine small islands and avoid creating many 1-body islands, which is slow
MultiThreadedDemo: run PredictUnconstraintMotion in parallel