Support snapshot windows

Well no reason you didn't look at it Mark - I never created the PR. Apologies.

> Shouldn't the end date be the SnapshotDate, you should never have to read data after the snapshot date. I am not quite sure what the intention of "latest" is in the comment.

So those comments were taken from the old `featureStorePaths`, but the logic is the same.

> This should be from prev store date to snapshot date i think but need to read it all a bit deeper.

Looks like both you and Russell found the `None` confusing. I'm happy to either:

1. Create an ADT that is effectively an Option, but has `SnapshotDate` instead of `None.
2. Just pass the damn snapshot date in and be done with it. It _seemed_ nicer to me that this logic was isolate from actually knowing what that day is, but maybe it'll be cleaner if I just use it