previously the fft offset finder raised an index error if there was no data below cut-off. Now we check for this and raise a clear value error
models now catch value errors raised by the fft offset finder and fallback to a simple peak-based heuristic
found a few places where we were using heuristic values instead of initial values (i.e. not taking advantage of all the information supplied to us by the user)
ModelParameter.get_intial_value now returns a float or raises a ValueError. This is probably more pythonic and makes it easier for pytype to not have to deal with the Optional[float] return type