WIP: ReducerPool for chord

There is some really, *really*, **really** horrible mutation in here. I did the bare minimum to get it working. The real problem lies in the use of `DateOffsets`, and the fact that we want to pool the reducers. If/when we switch to a better date format this all gets _much_ cleaner.

I think it might be good to talk about this PR (and the other chord reducer) PR tomorrow just to make sure I'm not going off the reservation.

PS. Some of this code is from other branches. The dangers of creating multiple PRs and then not merging.