[MLLIB] SPARK-1682: Add gradient descent w/o sampling

The GradientDescent optimizer does sampling before a gradient step. When input data is already shuffled beforehand, it is possible to scan data and make gradient descent for each data instance. This could be potentially more efficient.

Add enhanced RDA L1 updater, which could produce even sparse solutions with comparable quality compared with L1. Reference: 
Lin Xiao, "Dual Averaging Methods for Regularized Stochastic Learning and Online Optimization", Journal of Machine Learning Research 11 (2010) 2543-2596.

Small fix: add options to BinaryClassification example to read and write model file