[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.
It is not clear in the doc that whether this is relative or absolute. Also, the diff of the loss is not a good measure for convergence, especially when the problem is ill-conditioned. The diff of the solution vector is better. Usually, relative measure is used when the magnitude is greater than 1, or absolute measure otherwise.