Support snapshot windows

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

> Could you get IndexOutOfBounds if the underlying array in the bw BytesWritable is too small?

`set()` will automatically resize if that happens.