Added gradient methods in layer.py, some getters in NeuralNet.py, started backprop function in backprop.py
Corrected backprop

Fully vectorised. All you have to do is give backprop a net, data, and
targets. It'll return a list of matrices, each one being the dE/dW
matrix for a layer, normalised over the training examples. The list is
ordered bottom up with the layers. I still haven't accounted for biases
because I don't completely get it yet, but I presume it won't be too
hard to add. Note that for this to work, the layers in the network need
to have their dY/dZ gradients properly defined in their respective
layer classes.