Remove interface INeuronAdditionalData. Add NeuronAdditionalData.
Now Neuron depends directly on NeuronAdditionalData.
Using interface does not allowed member functions with different names
between subclasses to be accessed by the interface, which is what I want.
(different weight updating methods uses different classes
with different member functions.)
As a result, use one concrete class instead.
Maybe there is a better solution and I'll add it here when I found one.