This changes the way that errors are held and derivatives are calculated in the controller class. Previously numpy arrays were used, but these were found to be too slow. The code now simply uses lists, which generally are faster when using less than 256 individual values