Fix bug in variable_from_makefile in parallel_self_test.py

If there is no Makefile in the pwd then this function would always fail
because make fails (even though a Makefile in the pwd is not really
needed).

Fixed by setting the cwd for the make command to be that of the Makefile
from which the variable is being extracted.
Add const versions of some functions

* Problem::time_stepper_pt()
* TimeStepper::adaptive_flag()
Add an untemplated base class for UnsteadyHeatEquations

This allows us to do things like setting the source function and getting
the type of the function pointer without needing to know the dimension at
compile time (i.e. without templating the problem class by dimension).