WIP: General perf enhancements

This is mainly targeted at minutely backtests with daily emissions. Having a 1-to-1 emission causes the perf tracking to dominate performance, which I haven't touched. 

Can someone else run this and let me know the timings? Especially with an algo that's public and that I can also run.
This will break if self.fields changes mid-run, which is something that we allow.