Matrix Completion Via Nonconvex Factorization: Algorithms And Theory