Use LRU caching for footers in ParquetInputFormat

Remove footers instance variable.  This instance variable causes issues when the same ParquetInputFormat instance is used to generate splits for different files.  More specifically, it causes problems in Hive's FetchOperator when the FetchOperator is attempting to operate over more than one partition.  This issue is described in more detail at https://groups.google.com/d/msg/parquet-dev/0aXql-3z7vE/Gn5m094V7PMJ
tests that rely on sleep for getting things to go are unfortunate. What is the wait for? Can we use some callback notification instead? Will sleep(1000) always work?