WIP - trying to fix the patch that was failing drill automation. The issue is how I had tried to wrap the non-nullable readers inside of a generic non-nullable reader. I'm going to revert to the old approach for now as there is an issue with this that seems like it may take some time to fix.
Successfully backed out the changes that had changed the structure of the nullable column readers. This re-introduced some redundancy but avoided a bug that was holding up the release. Ended up falling back on the higher level reader API, only in the case where we are reading a dictionary column and then the next page is not dictionary encoded. This can be fixed to use the optimized read instead, but it doesn't conform to the overall structure of the current reader and is a bit difficult to fix.