Matrix Completion and Low-Rank SVD via Fast Alternating Least Squares