Support snapshot windows

Part 5...

This is where things start to get more interesting. I'm not at all convinced that the all-important logic in `SnapshotPartition` is correct and will need some serious scrutiny and tests.
I started to wonder whether this might be bad if the facts are really being store/read from the factsets in something approaching the reverse order and this ends up being pathological. Should the datetime sorting be ascending, and do a little more byte copying here?