Add detailed version info for Apps and framework.

Addresses issue #4026. Finds detailed version information for repos
in SVN, git, or git-svn. Auto-generates revision header files for
the apps and framework. Prints framework revision. (Apps can print
their own version info using the generated header.)
Only call acceptStep() when Picard iterations are converged ref #4041
Created so-called dumb deactivation scheme that can act as a last-resort to finding the active constraints.  Added test using a typical multi-plasticity model used in rock mechanics.  Fixes #4043
Merge pull request #4042 from bwspenc/picard_sync

Only call acceptStep() when Picard iterations are converged
Merge commit '86db6f5773ca436ca3b52b7cba4514a2d73834c4'
Minor tweak to logic for acceptStep() call closes #4041

I took a fresh look at this and realized that _picard_converged
would never be true here, so removed it from conditional check.
Add comparison operators (#4040)
Expand unit test for ExpressionBuilder (#4040)
Merge pull request #4045 from bwspenc/picard_sync

Minor change to picard iteration logic
Merge pull request #4044 from WilkAndy/dumb_4043

Created so-called dumb deactivation scheme that can act as a last-resort...
Merge pull request #4046 from dschwen/expb_4040

Add comparison operators to ExpressionBuilder
Fix clang compiler error
refs #4044
Merge commit 'cf5a8a33511d32dbd3156b62cd6d35562e3b573a'
Merge commit '1ab7e4da76601e8e314ea64c9382c0769d43cb02'
Merge commit '2ce79d7985bd30300225dbd70e76b19883fe5df5'
Merge pull request #4027 from shanestafford/detailed_version_info_4026

Add detailed version info for Apps and framework.
Merge commit '4de3a3348f0dc590b5a5f72af2a3d87f9e72b09c'
Merge commit 'f161224f24f622164fb927acc46e9a59f5e0bead'