Replacing a O(n) find with a O(1) lookup (PHI Kanban #2719)

This is the start of trying to reduce the runtime for configures.  Here, I
moved up setting ${PACKAGE_NAME}_SORUCE_DIR as soon as we know if the SE
package ${PACKAGE_NAME} is defined and its source dir exists or not.  Now we
can use O(1) IF (${PACKAGE_NAME}_SORUCE_DIR) in logic instead of O(n) FIND()
operations.
Adding a test and adding some doc for TRIBITS_SET_FULL_DEP_PACKAGES() (PHI Kanban #2719)

Here I have added a test to make sure that
${PACKAGE_NAME}_FULL_EXPORT_DEP_PACKAGES is getting set correctly.  I will use
this in a refactoring to significanlty improve the peformance of this function.
Merge remote branch 'github/master' into faster_configure_2719
Making all of the super important doc/example/UnitTests test BASIC

These were not getting run by the checkin-test.py script by default.  That is
super bad because we don't have any CI or Nighty testing server hooked up,
except for Travis-CI.

These tests are not that expensive comparatively and they are super important
validation tests for TriBITS.  No one should push to the main TriBITS repo
without running these first.
Merge remote branch 'github/master' into faster_configure_2719
Cleaning up printing of enabled/disabled packages (PHI Kanban #2719)

Also as part of this, I now have a official list of enabled packages and
enabled SE packages.  With this I can start making things configure faster by
just considering enabled packages.
Moving generation of full package dependencies until after enable/disable logic (PHI Kanban #2719)

No sense creating data-structures you will never use.  Also, I replaced two of:

    LIST(FIND ... ${PROJECT_NAME}_SE_PACKAGES .. )

operations with O(1) lookups for indexes with the new variable
${PACKAGE_NAME}_SE_PKG_IDX.
Just a little reformatting (PHI Kanban #2719)
Adding if statement to guard against non-enabled required dep package (PHI Kanban #2719)

This if() guard should not be needed but without this there is a configure
failure related to one of the SCALE packages.  Very strange.
Reduce the size of the list of SE packages in enable/disable logic (PHI Kanban #2719)

Here I created some intermediate lists for fewer SE Packages to only loop over
packages that have already been disabled.  This does not improve timing by a
lot but it does not seem to hurt it either so I might as well keep this
commit.
Replace a loop over TPLs and SE Packages with a single loop (PHI Kanban #2719)

I don't see any performance improvement but this the code is simpler.
Merge if/elseif into a single if staement (PHI Kanban #2719)

I hoped this would improve peformance but it appears not by much.
Trying to exclude disabled packages earlier (PHI Kanban #2719)

This helps if you have a lot disabled packages up front.
Adding test for package coupling vars (PHI Kanban #2719)

This is best that I can do without a more detailed unit testing
infrastructure.
Using enabled only SEP and TPL lists for sorting (PHI Kanban #2719)

This is not a great implemenation yet but at least now it is only searching
through set of enabled packages and TPLs and not all pakages and TPLs.

I think there is a much better refactoring on the way.
Using enabled SE pkg list (PHI Kanban #2719)

This is not going to save much time but it is an easy replacement.
Added "-- " to beginning of print statement.

Just looks nicer.
Adding option WrapExternal_SHOW_MOST_RECENT_FILES (PHI Kanban #2719)

This is to make it so that we can see the details the modified files to
improve testing and to help in demonstrations.
Improved performance and outputting (PHI Kanban #2719)

Before, the overall most recent modified file was not getting printed
correctly.  The correct file with the correct timestamp was being returned but
the output was confusing.

As part of this I also improved the outputting to show the relative base
directories better, now relative to the project base dir.

I also improved performance by not running "ls" on the files in the
intermedate directories unless we are printing them out and I changed to only
look for modified files in the parent packages, not all of the subpackages.

It looks like for the CASL_MOOSE package, these changes dropped the time from
24s to 16s.
Merge remote branch 'casl-dev/master'