Faster animations and bug fixes
* New `Agent._history_arrays` dataframe. This is identical to `Agent.history` except for two things (same for `Neurons` too):
* It is dictionary of arrays, not lists.
* It should only be accessed via its getter-function `_history_arrays = self.get_history_arrays()`
For now this API is intended to be mostly internal. We don't recommend users use this and instead should stuck to using `self.history` as before. But it speeds up animation internally a lot because it _checks_ a cache to see if the list-->array conversion has been done recently and only repeats it if it hasn't.
* Plotting rate maps via the `history` method now shows the regions where the Agent never went as grey rather than black (i.e. zero firing rate). This is more realistic, shows the data more honestly and closer to how experimentalists do it (i.e. by shooting spikes and dividing by position occupancy).
* Additionally users can specify the discretisation of the rate mat smoothing
PlaceCells.plot_rate_map(method="history", bin_size=0.06) defaults of 0.04, i.e. 4 cm
* Bug fixes relating to 104 and some other minor stuff I hadn't spotted in 1.12.
**Full Changelog**: https://github.com/RatInABox-Lab/RatInABox/compare/1.12.0...v1.12.1