Improve stability of hz_linesearch!

- For non-finite values, update alphamax and use more bisection (this
  seems to be a significant improvement when it comes to handling
  barriers)
- Use nextfloat in tests for convergence (this avoids trouble when
  you're right at the optimum)
- Make hz_linesearch! more robust against floating-point oddities
Various fixes to convergence tests and add function value checks

- Improve ordering of tests for convergence (catches some early exits)
- Small fix for assess_convergence with nonvector parameters
- Check type of function value return (when the parameters are
  Float32, the objective function's return value had better be, too,
  or we could be fooled about the precision.)
Add initial_step keyword to nelder_mead
Remove dependence on Options and unify API