Fix wrong function name in Preconditioner base

Preconditioner::turn_into_subsidiary_block_preconditioner was called
Preconditioner::turn_into_subsidiary_preconditioner
Fix bug in parallel_self_test.py where specified number of cores was ignored

and slightly improve comments and layout
Add option to parallel_self_test.pt to run in serial mode for debugging
In parallel_self_test.py write make output to file "make_check_output"

Instead of dumping it to /dev/null. Useful if make failures are not
reproducible for some weird reason.
In parallel_self_test.py always get the absolute path (less error prone)
In parallel self tests: add option to build but not run tests
Clean up of some of my (David) code in oomph-lib core

* Move interpolator.h to generic.

* Clean up comments in interpolator.h.

* Add ability to interpolate time and space derivative of values
  (i.e. d2v/dxdt).

* Move some large functions from midpoint_method.h and poly_interp.h to .cc
  files.

* Clean up comments and add paranoid checks in poly_interp.h.
Add a function to get the (unmangled) type name of an object as a string
Additional capabilities for interpolator class

* Can optionally set the timestepper to be used

* Store local position

* Needed to make nprev_values_for_value_at_evaluation_time() const
Move undo_make_steady up into Timestepper base

* Avoids duplicate code - all implementations did the same thing

* Virtual so still easy to overload if needed

* Also very slightly increased tol in fpdiff in axisym_navier_stokes/torus
  Not sure if this is related to this change but it was needed to make the
  test pass on my machine. Changed zero from 1e-12 -> 1.1e-12 .
Add paranoid check for empty matrix when running SuperLu

Otherwise we get a segfault inside SuperLu, with no easy way to find out
what went wrong.
Make vector time_derivative calc use individual time_derivative function

Cleaner code and easier to overload.

Also fixed some comments.
Add new demo driver binaries and generated headers to gitignore
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.
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.