Improve parallel_parameter_sweep so that can act on unmodified functions

* Before it needed special functions where all args were in a list
  Because of python multiprocessing function's limitations. Added a wrapper
  function inside parallel_parameter_sweep to avoid this.
Parameter tweaking (and supporting code to allow this)

* Improved default parameters for mipoint ab based on numerical tests
  See notes 28/3/2012.

* Allow _timestep_scheme_factory to take a dict of method params
  Before it only took a string. Allows us to massively cut down the number
  of if statements.

* Replace ValueError by (new) ConvergenceFailure when convergence fails
  Otherwise when catching exceptions things are likely to mess up.

* Add option to pick the point used for t_nm1_AB
  And modfiy interpolators to deal with this