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
This was my half-hearted attempt to make the cache entries immutable, but of course the metadata is still mutable so I should probably either give up on making it immutable or just return footer directly.  Thoughts?