added a minimum step to linesearch, before it was based on iterations

Now the user can set a minimum step size. When alpha drops below this,
the line search just returns 0. This allows BFGS,LBFGS to set a minimum
step size based on stop_X, which is more efficient.
made gradient default out, and removed DEBUG def