implementation of svd++ (#350)

- add implementation of svd++
- train the latent features one by one
- TrainingEstimator in funksvd is changed to be public
- for the output model, users' features are added up with the normalized item implicit features