PARQUET-52: refactor fallback mechanism

ready for review:
https://issues.apache.org/jira/browse/PARQUET-52
That's for java.io.
I think in hadoop it works differently but I'll check.