Initial commit of explicit timestep predictor work

* Idea is to be able to use a (higher order) explicit time stepper to
  estimate the local trunction error for time adaptivity.

* Working test in demo_drivers/unsteady_heat/two_d_unsteady_heat_midpoint
Initial commit of script to check makefiles' subdir variable
Combine rebuild_global_mesh() and merge_meshes() functions

They were copy pasted from each other so might as well be one function for
consistency.
Add option to calculate predictor values even in non-temporally-adaptive Newton solve
Allow multiple meshes and clean up in copy_dof_pt_to_data_history_value(...)
Improve check-makefile-subdirs.py

* Better formatted output

* Smarter input

* Use function from parallel_self_test.py
Fix memory leak: delete predictor_pt in midpoint destructor
Add safe global_to_node lookup in SumOfMatrices code

* Rename old method to unsafe_...

* Safe version is better for normal use (throws error on failure) but unsafe
  (return -1 on failure) is needed for some things.