Swap to using ebdf3 predictor for midpoint by default
Add automatic swapping between residuals if needed to do explicit step

Change residual calculators to be in a single class with a boolean to
decide which form to use.

Add step in llg factories to insert an intermediate class between the
midpoint method's predictor pointer and the actual predictor. This class
does the swapping of the residual form.