implementation of svdfeature and optimization methods (#436)
 - add HingeLoss
 - add BatchGradientDescent and AlternatingBatchGradientDescent
 - delete ArrayListHelper
 - change the interface of LearningModel for alternating optimization