Organize the code better, generalize NeuralNetworks module code, make CheckGrad module, make tests that pass