Redump hash + JSON schema fixes
===============================

This update keeps the Redump-style option-1 layout but cleans up the generated JSON naming and adds full-image hash fields.

Changes:
- Finalized output is now re-read after fclose/commit to calculate CRC32, MD5, and SHA-1.
- Console output now prints CRC32, MD5, and SHA-1 for option 1 and option 2.
- .media.json and .xdvd.json keep image.sha1 for compatibility and add image.hashes.{crc32,md5,sha1}.
- .xdvd.json no longer writes the misleading disc.xbox_physical_sectors = 3820880 for Redump-style images.
- .xdvd.json now separates:
  - disc.reconstructed_output_sectors
  - disc.reconstructed_output_byte_count
  - disc.drive_reported_unlocked_sectors
  - disc.drive_reported_locked_sectors
  - disc.unlocked_game_view_sectors
- .xdvd.json layout no longer uses image.layout.visible_sector_count to mean the reconstructed pre-game/game offset.
  It now uses:
  - legacy_contiguous_visible_start_lba
  - legacy_contiguous_visible_sector_count
  - drive_locked_visible_sector_count
  - video_l0_start_lba/video_l0_sector_count
  - pregame_padding_start_lba/pregame_padding_sector_count
  - postgame_padding_start_lba/postgame_padding_sector_count
- .media.json layout also records drive_locked_visible_sector_count, drive_reported_unlocked_sector_count, and reconstructed_output_sector_count.

For the Red Faction II test dump, the SHA-1 observed in the log was:
  97a92595bfb70eb5bd99ebee9ce3979d4d06a045

Redump disc 50137 is the matching Microsoft Xbox / DVD-9 / USA / TQ-005 Red Faction II entry. The Redump web page was intermittently unavailable through browser fetch during this update, so CRC32/MD5 should be checked by rerunning this build or using certutil against the finalized ISO.


Redump disc 50137 correction: layerbreak is 1913776, not 2092896. Redump hashes require exact filler/security sectors; zero-fill reconstruction is expected to hash differently.
