Tribits: Add ability for a project to change the strong warning defaults

Added two callback variables in the CallbackSetupExtraOptions.cmake file that
allows a project to set the defaults for strong warnings for C and C++. If these
variables are set it will override the Tribits provided default. If they are not
set Tribits will continue to set a default. The existing behavior was maintained
in that if only the C version is set the C++ version will be the C version plus
-Wwrite-strings. However, both of these can be overriden separately.

The variables are:

<project name>_C_STRONG_COMPILE_WARNING_FLAGS
<project name>_CXX_STRONG_COMPILE_WARNING_FLAGS

Three new unit tests were added to test the cases C options set, C++ options set
and C and C++ options are set to different values.
Update Trilinos default C standard to C99.

Previously the strong warnings in Trilinos were set to -ansi which enforces C89
and C++98. This is an issue for anyone wanting to write C99 compliant code. This
updates the C standard to C99, however it leaves the C++ standard at C++98.
Since the declaration of the expected standards for these two languages are now
separate it will allow us to move to a newer C++ standard later without
affecting the C standard.
Fixed minor grammer typo.
Fixing compiler flags so that we don't get more warnings about invalid options (Trilinos #6150)

Now -std=c99 only appears in the C flags and -std=c++03 only appears in the C++ flags.

We might want to remove -std=c++03 if there is trouble.
Added check for variable CTEST_CONFIGURATION_UNIT_TESTING, defaulting
to OFF, to stop processing after ctest_configure().

Build/Test Cases Summary
Enabled Packages: TriBITS
Enabled all Forward Packages
0) MPI_DEBUG => passed: passed=136,notpassed=0 (4.53 min)
1) SERIAL_RELEASE => Test case SERIAL_RELEASE was not run! => Does not affect push readiness! (-1.00 min)
Setting up to use default email git property 'mailinglist' if dirs_to_emails is missing

With this change, if the file hooks/dirs_to_emails is missing, then it
will instead use the git config property 'mailinglist'.

This is an important change because it will allow the usage of git
config [hooks] property 'mailinglist'.  This property can be directly
set in the gitolite-admin/confi/gitolite.conf file.  This allows
anywone who can push to the gitolite-admin repo to be able to able to
change the list of email addresses that will be pushed to.
Disabling STK in automated testing

STK has been broken in the build on the CASL Fissile machines for a long time,
since the update of STK from SIERRA.  Basically we are getting a lot of build
errors in STK being reported to CDash.

Also, I am hoping that disabling STK will speed up the build of Trilinos so
that we don't timeout the MPI_RELEASE_GCC build after 5 hours like is occuring
now.
Updated to use GL_USER if set for gitolite (PHI Kanban #3419)

Here I updated this simple bash script to use GL_USER set in the env
if it is non-empty instead of USER.  The env var GL_USER is set by
gitolite on a push.  This maintains the old behavior when GL_USER is
undefined and will use the push userid when gitolite is being used.

From a Google search, it looks like GL_USER is pretty much only used
by Gitolite so I don't think there is much of a chance of accidentally
picking a var called GL_USER unless gitolite is being used so I think
this is safe.

Yea, now the push hooks work for gitolite too!
[TriBits] move installation options setting

This commit makes sure that the installation options are set *after* the
environment has been probed, i.e., after the compilers are set.

This allows for a refined default setting of installation folders in a later
commit.
[TriBits] Use default install dirs from GNUInstallDirs

Fixes bug #6122.
Adding --dist-no-color to doc for how to create RepoVersion.txt file

Turns out that you have to pass in --dist-no-color or the color chars mess up
the reading back in to egdist --dist-version-file.
Regenerated for update to egdist --help output

Build/Test Cases Summary
Enabled Packages: TriBITS, ForTeuchos
0) MPI_DEBUG => passed: passed=141,notpassed=0 (5.04 min)
1) SERIAL_RELEASE => passed: passed=138,notpassed=0 (3.81 min)
Other local commits for this build/test group: cfca577
Updated sections on building single object files

Newer versions of CMake seem to be naming the object file target for source
files SomeSourceFile.cpp as SomeSourceFile.o.  And the object file is stored
in a subdirectory.  These updated instructions should work for any version of
CMake that stores the object files under the build directory of its Makefile
that creates it.
Updated for update for building single object files.
Removed extra '#' in comment block
First working version of TRIBITS_FIND_MOST_RECENT_FILE_TIMESTAMP()

This is just manually tested for now.  But this is coming along nicely.
Added TRIBITS_FIND_MOST_RECENT_SOURCE_FILE_TIMESTAMP()

This is not completely finished but it does the basic pass through and back.
Implemented basic version of TRIBITS_FIND_MOST_RECENT_BINARY_FILE_TIMESTAMP()

This includes regexes that exclude known build-related files should not
trigger a rebuild.
Fixed formating of time-stamp arg

For some reason, this was printing different numbers of "'" at the beginning.
Seems I was formating the print -printf argument wrong.
Working prototype of automatic dependency tracking based on time stamps

With this, you can now make any change to the source tree and trigger the
build exteranal_func/ directory to get blow away and rebuilt again.