Adds feedback from action neurons back to representation neurons. For now, the feedback is weighted by the weights from hidden to action neurons, **with the weights being fed through the softmax function**. This insures that the value of the weights is binary (either strong ~1 or weak ~0), which is needed to avoid positive feedback that would potentiate the weight from a single hidden neuron. Also adds a 'procedural learning' phase to assign/initialize correct weights between the representation and the action neurons. This learning is done at the end of the critical period of a run. Also puts the reward computation into a separate method in external.py, and allows to display weights from hidden to action layers in plots.
small changes to allow usage of ach in combination with dopa. However, cannot take random actions (bestAction=False) when using feedback with ACh because taking random actions leads to incorrect/meaningless feedback that is still paired with learning (ACh signal).