[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.
This is comparing convergenceTolerance with the objective from the last iteration.  It should compare with the absolute value of the difference between the objective from the last iteration and the objective from the iteration before that.