Fix pytest Failures in MP3 and gpython

I’ll run the tests, investigate the failures, and fix their causes.
The tests have passed so far. The run is now building documentation and rendering examples, which takes longer than the unit tests; I’m waiting for the failure details before making changes.
I reproduced a failure in MP4 compilation: it leaves the first PNG file open, and pytest treats the resulting resource warning as an error. I’ll add explicit cleanup for the image handles and verify it also works when encoding fails.
All 33 animation tests now pass, including checks that image handles close after successful and failed encoding. The broader rerun found another failure; I’m checking that before finishing.
The second failure came from a field-reader test that classified fixtures by filename. A new time-series fixture, exponential_energy.gkyl, slipped into that list. The test now reads the file header to identify field data.
The original full run finished with only these two failures; documentation and examples passed. I’m finishing the rerun with both fixes applied.
Fixed both failures:
- MP4 compilation now closes PNG handles, including when encoding fails.
- Field-reader tests identify fixtures by file headers instead of filenames.
Verification: 1,953 passed, 6 skipped on the rerun. Documentation and example tests passed in the initial full run. Ruff and diff checks passed.