RF - move around some of the predict stuff

Just a little bit of cleanup of the predict code. @arokem can you look over this when you have time.
I don't quite get the question, but I think yes. Subclasses will get the predict method of the CSDmodel and can override it if it's appropriate. Calling `fit.predict` on any fit defers to the model which makes initiative sense, you apply a diffusion "model" to the fit to get the signal. It also makes coding sense, many models can return the same type of fit object (ie CSDmodel and QballModel both return an ShHarmFit) and predict will work in both cases because the fit just defers to the model that created it.

I think this module level function is superfluous, I'm happy to remove it altogether if you do not need it.