[SPARK-3382] GradientDescent convergence tolerance

GrandientDescent can receive convergence tolerance value. Default value is 0.0.
When loss value becomes less than the tolerance which is set by user, iteration is terminated.
I feel like the default should be > 0.0.  Something small like 0.001 (a value pulled from libsvm [https://github.com/cjlin1/libsvm/blob/master/python/svm.py]) might be reasonable.  Basically, I think that convergence tolerance is generally a better stopping criterion than numIterations, and having it > 0.0 will give it a chance of taking effect before numIterations.