Add implementation of self-consistent method.

This method iterates on ZPHI until it converges on a coefficient
that minimizes the error between the phidp data and the phidp
retrieved from phi. This works much better now using minimize_scaler()
from scipy rather than bounded minimization using "L-BFGS-M".
Add support for running a single algorithm by name.