Added support for softmax neural layers

- Added a class for softmax neural network layers
- Modified neuralnets_digits notebook to make it use the softmax layer
- Reworked NeuralNetwork.compute_gradients test to make it test each layer type individually