Add an option that makes it possible to ensure that the last point is exactly for Tmax; make sure that we never exceed Tmax

Imagine that ``tmax = 10 s`` and ``h = 1s``.  If, because of accumulated errors, ``tn = 9.9 s``, we want to move it up to ``10 s``.  If ``tn = 10.1 s``, we want to move it down to ``10 s``.

In the case that you describe, we arrive at line 121 with ``parameters.tmax - parameters.Δt / 2 >= tn`` so surely ``tn`` is not overshooting, we don't need to do any tweaking, we happily go through the loop as usual.  ``δt`` is set to (roughly) ``h`` at line 131.  At the end of the loop we do ``tn += δt`` so now ``tn`` is surely over ``parameters.tmax - parameters.Δt / 2`` (heck, it may even be over ``tmax``) and we execute lines 124-126 and clip ``tn``.  I think it's all WAI.