Update to testComponents to make it more general and make it automatically test all components for their "structural" integrity. That is they can: clone, de/serialize, connect to an aggregate via connectors, add themselves to a system, contribute to state initialization and can do so without leaking more than 1/10% of their initial memory footprint. These can be tightened more once we find the source of these small leaks.

All registered Components can be run through this harness but the majority fail the test. Therefore, a more systematic approach was adopted where Components are being run through by type with Body and Joint being the first to be cleared. An example of an updated PointToPointSpring (Force) is provided for adding additional Components. This is a step forward on issue #66 and is more automated especially since Connectors are handled by creating and adding the dependency of the correct type.

Other changes:
1. Renamed constructStructuralConnector(s) to just constructConnector since a Connector is defined to be a slot/socket to support (structural) dependencies on other Components.
2. CustomJoint was modified so that constructCoordinates no longer makes copies of Coordinates (savedCoordinates). This lead to references to Coordinates being stale.
3. Discovered that RollingOnSurfaceConstraint test was pointless (nothing was being tested) and so a real test that compares to a collection of Simbody constraints was added to testConstraints.

Things to do:
1. Update other Component types so they successfully pass through this harness. Most require their dependencies to be made explicit via Connectors instead of just having property strings for names of the dependencies.
2. Add tests for Inputs and Outputs
3. Test error handling in cases that a Connector or Input cannot be satisfied.
Merge branch 'master' into TestComponentsGeneralized
Addresses suggestions made during this PR.
1. Component methods and comments better organized into groups
2. RollingOnSurfaceConstraint case in testConstraints no longer uses stack allocations.
3. Transform axis comments updated to reflect that axis function is NOT optional just has a reasonable  default.
4. testComponents uses SimTK::Array so that ownership is not assumed (which ArrayPtrs takes by default)
5. testModelCopy test copy constructor and clone.
Merge pull request #194 from opensim-org/TestComponentsGeneralized

Update to testComponents