Built out larger set of testing utilities: cross_validation.py for doing predictions and cross-validation on subsets of data, reconstruction.py to try and reconstruct some fake data. Updated check_grad.py, which now predicts the gradient correctly, and made tweaks to books.py and mf_debug.py