Another master merge into the zoom buffer branch
This was a bit of a messy one.
The changes made to clean up the readability in the regrid and split mean any edits made without those abstractions are a real pig to handle. I think it's worth merging these changes separately (it is easy enough to focus on the uniform box abstractions).
For reasons unknown the sink changes also didn't play nice in the conflicts... that one was more of a mystery to me. Luckily, I know I made no changes there so just took exactly what's on master for those issues.