Move Predictor_storage_index into timestepper base

* Stores the location of the predicted values so that they can be used by
  other code.

* Store an index of -1 if not assigned (e.g. if time stepper is not
  adaptive). Paranoid mode checks for -1 and throws an error.
Add code and Problem parameter to use predictor values as initial Newton guess