Remove mutable from track association

Classes in the package SimTracker/TrackAssociation contain eight mutable data members that cause thread safety issues.  This pull request removes one of them, and replaces it with a variable on the stack.  The other seven mutable data members are more difficult to deal with, and will be done later.
This pull request also adds "virtual" and "override" keywords to the declarations of virtual functions that override virtual functions in a base class.
This pull request also fixes a problem where "const TrackingParticleRef" was used as an argument type.
The argument should have been passed by const reference, e. g. "const TrackingParticleRef&". There was one place where the argument was passed by reference in the base class but by value in the derived class, so the derived class function did not override the base class function it was supposed to override.  I believe that this bug affected only validation, as the function was only called from there.

Tested with checkdeps -a and the relval matrix.