Implemented more robust detection of divergence

- Compares step size at each step to the initial step size. In cases
  where the solution diverges, this should detect when it happens and
  respond accordingly.
- Removed previous protection mechanisms.