Addressing API inconsistency of when to call Super::finalizeFromProperties. Now it is ALWAYS called first. This was achieved by decoupling the base Component's implementation which provided the "services" of 1) wiping out connections and other internal data structures that are dependent on properties and then calling the finalizeFromProperties() on its (sub)components. finalizeFromProperties() was made public and non-virtual and a private base method added to do its addition of resources. A protected virtual extendFinalizeFromProperties() is now what derived Components must implement (not finalizeFromProperties) to extend/specialize new Component types. Super::extendFinalizeFromProperties() is to legitimately give its Super a chance to finalize first without the side-effect of calling subcomponents. Component separately invokes finalizeFromProperties on each of its (sub)components after the Component. Component's finalizeFromProperties() also marks the Component(Object)'s _objectIsUpToDate flag as true.
Addressing API inconsistency of when to call Super::connect(). Enable consistency by having only the extendConnect() as virtual.
Addressing API inconsistency of when to call Super::connectToModel on derived ModelComponents. Now Super::extendConnectToModel() is ALWAYS called first. This was achieved by decoupling the base Component's connect() which provided the "services" of 1) wiping clearing existing connections. connectToModel() was made public and non-virtual and is called by extendConnect() of ModelComponent which is now marked final. A protected virtual extendConnectToModel() is now what derived ModelComponents must implement (not connect() or connecToModel()) to extend/specialize new ModelComponent types. Super::extendConnectToModel() is to legitimately give its Super a chance to finalize first without the side-effect of calling subcomponents. Component separately invokes connect() on each of its (sub)components after the Component. Component's connect() also marks the Component(Object)'s _objectIsUpToDate flag as true to reflect changes to connectors during the connection process.
Enforced Super::extendConnectToModel() is always called first.
Untabified files as I was checking.
Made Component::disconnect() non-virtual. There is an extendDisconnect() method that remains commented out and it would be the virtual extension method. So far, no component is needing to extend disconnect(), but there may be specialized cleanup by future Components upon disconnect() so it may be enabled later.
Addressing API inconsistency of when to call Super::initStateFromProperties. Now it is ALWAYS called first. This was achieved by decoupling the base Component's implementation which invokes initStateFromProperties() on its (sub)components. initStateFromProperties() was made public and non-virtual. A protected virtual extendInitStateFromProperties() is now what derived Components must implement (not initStateFromProperties) to extend for new Component types. Super::extendInitStateFromProperties() is to legitimately give its Super a chance to finalize first without the side-effect of calling subcomponents. Component separately invokes initStateFromProperties on each of its (sub)components after the Component.
Addressing API inconsistency of when to call Super::setPropertiesFromState. Now it is ALWAYS called first. This was achieved by decoupling the base Component's implementation which invokes setPropertiesFromState() on its (sub)components. setPropertiesFromState() was made public and non-virtual. A protected virtual extendSetPropertiesFromState() is now what derived Components must implement (not setPropertiesFromState) to extend for new Component types. Super::extendSetPropertiesFromState() is to legitimately give its Super a chance to do its thing first without the side-effect of calling subcomponents. Component separately invokes extendSetPropertiesFromState on each of its (sub)components after the Component.
Verify that Super::extendSetPropertiesFromState is always called first.
Also untabified related files.
Merge branch 'master' into ComponentExtensionInterface

Conflicts:
	OpenSim/Examples/Plugins/CoupledBushingForceExample/CoupledBushingForce.cpp
	OpenSim/Simulation/Model/BushingForce.cpp
	OpenSim/Simulation/Model/ExpressionBasedBushingForce.cpp
	OpenSim/Simulation/Model/ExpressionBasedPointToPointForce.cpp
	OpenSim/Simulation/Model/Force.cpp
	OpenSim/Simulation/Model/FunctionBasedBushingForce.cpp
	OpenSim/Simulation/Model/GeometryPath.cpp
	OpenSim/Simulation/SimbodyEngine/BallJoint.cpp
	OpenSim/Simulation/SimbodyEngine/ConstantDistanceConstraint.cpp
	OpenSim/Simulation/SimbodyEngine/CustomJoint.cpp
	OpenSim/Simulation/SimbodyEngine/EllipsoidJoint.cpp
	OpenSim/Simulation/SimbodyEngine/FreeJoint.cpp
	OpenSim/Simulation/SimbodyEngine/GimbalJoint.cpp
	OpenSim/Simulation/SimbodyEngine/RollingOnSurfaceConstraint.cpp
Resolved latest merge conflicts.
Fixed copy/paste error that included Component:: in class's method declaration. VS doesn't seem to care about it, but both gcc and Clang screamed.
[travis] Download swig through github.

sourceforge is down, so let's download swig from elsewhere.
[travis] Generate swig configure file.
[travis] use sourceforge again for swig.
Update ModelComponent.h

Another copy/paste error from .cpp
Update ModelComponent.h

`final` keyword was breaking Clang  build with wrapping. Switched to our define FINAL_11.
Update to comments.
Minor doxygen changes.
Merge pull request #234 from opensim-org/ComponentExtensionInterface

Component extension interface fix (part II)