In new interpolators change the way build(..) works

Set pointers "by hand" (not a problem since they should be built by a
factory anyway.

Use build(...) only to set up for a specific point.

This allows us to easily take new variables (e.g. Time_index) in new
underlying interpolators.

Also allows us to easily replace the time stepper, e.g. for getting
output values from midpoint method.
Add a history value interpolator
Add factory function for MM interpolators

and use it in residual calculations