PARQUET-7: [thrift] avoid thrift amender if all fields are optional.

No perf tests... I did some rudimentary testing which seems to bear out the idea but nothing scientific yet.
Maybe we could push the logic in this PR (including the cache) into ProtocolEventsAmmender.ammendMissingRequiredFields(), and have it return an empty list here?

Then you don't need an if / else here, and you can make ammendMissingRequiredFields short circuit.

Also, what if the cache was instead a Map<ThriftType.StructType, List<TProtocol>> ?