[SPARK-4604][MLLIB] make MatrixFactorizationModel public

User could construct an MF model directly. I added a note about the performance.
With this now public, it might be good to add either (a) one check upon initialization doing a take(1) and comparing with rank, or (b) runtime checks in the various methods in MatrixFactorizationModel.  IMO, it's OK if not since those would both add extra overhead, but perhaps there should be a warning for the constructor noting that the arguments are not checked.