Add setters and getters to ImpulseSolver to change convergence tol and max iterations.
Found conceptual problem in handling of contact: the constraint-space velocities caused by (unconstrained) applied forces need to be kept separate from the constraint-space velocities due to the current state, because only the latter should be used to classify frictional contacts as sliding or rolling.
- Modified ImpulseSolver abstraction to handle applied forces separately, and updated PGS and PLUS to implement them.
- Modified SemiExplicitEulerTimeStepper to keep the applied forces apart.
- Fixed up some comments and obscure variables names.
- Changed sign on verrExpand to match other verr's and the documentation.
- Added Block model to RigidContact1 to reproduce PLUS problem observed on GazeboReactionForceWithAppliedForce test case.

PLUS now seems to be working properly on a Gazebo test case for which it was failing before.
This code needs some refactoring to recover from the many repairs I've done to it!
Further fixes to handling of applied forces in PLUS solver. They must be doled out in the same manner as expansion forces during partial intervals.
Two additions to PLUS solver:
- If a sliding contact gets lucky and slows to just below the rolling transition speed at the end of an interval, try to isolate the exact zero-crossing and shorten the step to get there.
- If a reduced sliding interval step length is very close to 1, round it up to 1 to avoid having to deal with a tiny sliver step both for numerical safety and to avoid the wasted cycles.
Minor comment change.
Small fix to test case -- bug caught by Visual Studio code analyzer.
Reorganized State source to expose the StateImpl class to facilitate inlining of frequently-called state access methods.
Fix State inlining -- gcc & clang failed.
gcc and clang needed one more fix.
Part 1 of inlining Subsystem::Guts implementation, which profiling showed was using a significant amount of time. Here I have gotten rid of Subsystem::Guts::GutsRep and incorporated its data and methods directly into Subsystem::Guts, with many methods inlined. There are still a large number of frequently-used methods that haven't been inlined yet.
Finish inlining Subsystem class, including the rest of Subsystem::Guts and the Subsystem handle class. So far this has not resulted in any speedup in Visual Studio 2013 and in fact seems to be a little slower. But I'm plowing forward with it anyway since other optimizations are enabled by inlining here (and other compilers may handle it better).
Some doxygen tweaks.
- Added a SimTK_FORCE_INLINE macro that can be used (judiciously) to override a compiler that fails to inline a method when it should have. I saw VC++ 2013 decide not to inline a trivial operator[] method which resulted in poor performance.
- Modified the performance-critical Array_ classes to make use of the new macro and verified that VC++ obeyed and that performance improved.
- Fixed Doxyfile to ignore the new macro.
May have gotten carried away with the force inlines -- fewer of them seems to perform better (somewhat inconclusive).
Another performance tweak: reduce state cache-access overhead by moving the allocation of the most heavily used cache entries to realizeTopology() from realizeModel(), so that the cache entry indices are in a fixed location at run time and don't have to be pulled from the state.
Fix bug in Debug output from PGS solver.
Added new PointInPlaneWithStiction constraint as a more efficient replacement for the use of a PointInPlane constraint along with two NoSlip1D constraints in unilateral contact.
Changed PointPlaneContact to use the new PointInPlaneWithStiction constraint which simplifies the implementation and makes it faster. Created PointPlaneFrictionlessContact that uses the old PointInPlane constraint.
Modified RigidContact1 to use the PointPlaneFrictionlessContact element for the bouncing balls example.