Make LASSO interface compatible with ridge and CV

Also the exploration of the C++ source shows that strange algorithm is
used
(1) In lasso, lambda/nrows instead of lambda is used (regularized_igd.hpp)
(2) the updating algorithm is strange (l1.hpp)
Adjust Ridge and LASSO so that they produce same result as R (glmnet)

(1) regularized_igd.hpp: incorporate the number of observations
(2) lasso_igd.cpp: make soft-thresholding better
(3) l2.hpp: correctly compute loss
(4) lasso_sql_in: correct the target function in documentation, correct
lambda scaling factor, correct loss scaling factor
(5) ridge.sql_in: correct the target function in documentation, correct
lambda scaling factor
(6) ridge_and_lasso.sql_in: recover the original norm value test