[DWRF] Bug if stride dictionary is skipped for a stride

Summary:
If we have a string column that's dictionary encoded, and some values are in the stride dictionary, if in one stride all rows that have values in the stride dictionary are skipped (and the last row in the stride has to not have a value in the stride dictionary) and then a row in the subsequent stride with a value in the stride dictionary is read, before any rows are skipped in that stride, it will produce incorrect results.

This is because seek was not being called on the stride dictionary streams in the subsequent stride, so they would read from the previous stride.

I moved the seek into the code where we load the dictionary (since this is called at most once per stride, and seek only needs to be called at most once per stride) and this fixes the issue.

Test Plan:
I added a test that demonstrates the issue (the comments in it might provide a better explanation)

Running ptests.