Filtering records across multiple blocks

Copied from: https://github.com/Parquet/parquet-mr/pull/413

However, as tomwhite mentioned, there might be a better way to do this.

I had also written this:

`current ++;` still doesn't seem correct even when `currentValue != null`. Imagine a block with 100 records, but only the record at position 50 matches our filter. In this case, the first time `nextKeyValue()` is called, it will call `recordReader.read()` which will successfully find the record at pos 50, but `current` will just be incremented to 1.