Complete prototype of NeuralNetwork.
It is a passive data structure storing the structure of network, thus only has
minimal amount of operations.
Feeding inputs, calculating output and adjusting weights to learn from data
are done by someone else who knows both Neuron's and NeuralNetwork's operations.