rs5 corrupting bug fix - clear hole cache when truncating archive

There was a situation where we could hit a bug where we remembered a
hole being past the EOF after the archive has been truncated,
potentially allowing large data written to the EOF being overwritten by
smaller data filling up the no longer existing "hole". This sequence
could hit it:

./rs5-extractor.py -f main-modded.rs5 --revert
./rs5-extractor.py -f main-modded.rs5 --add-mod french.rs5mod communitypatch.rs5mod
./rs5-extractor.py -f main-modded.rs5 --set-mod-order communitypatch french
./rs5-extractor.py -f main-modded.rs5 --add-mod french.rs5mod communitypatch.rs5mod
./rs5-extractor.py -f main-modded.rs5 --list-holes

with this assertion failure:

...
a0f0a87e:a0f0c13a (MIASMOD\MODS\french.manifest)
MIASMOD\MODS\french.manifest
<-- HOLE: 19839120 bytes -->
a21f79ca:a21fcc40 (MIASMOD\MODS\communitypatch.manifest) markers
a21fcc40:a21fccce (MIASMOD\MODS\communitypatch.manifest) MIASMOD\MODS\communitypatch.manifest
<-- HOLE: -142 bytes -->
!!! WARNING: 142 BYTES OF OVERLAPPING DATA DETECTED !!!
a21fcc40:a2214375 (MIASMOD\MODS\communitypatch.manifest) TEX\J2\LIST_NoteDD (MASKED BY MIASMOD\MODS\french.manifest)
a2214375:a34ffcad <CENTRAL DIRECTORY>

Both the communitypatch.manifest and TEX\J2\LIST_NoteDD have been
written to the same location.

I believe this is what was happening - say the layout looks like this:

base files
mod files
manifest
central directory

Then the mod is removed, it might look like this:

base files
central directory
hole
location of the central directory when the holes were cached

Then we truncate the file:

base files
central directory
EOF
non-existent hole

Then we write some large data:

base files
hole
previous EOF
mod files too large to fit in a hole written to EOF

...and some small data, perhaps the mod manifest:

base files
hole
previous EOF
mod files | mod manifest written to non-existent hole

...and we've just corrupted the archive - oops!

Clear the hole cache whenever we truncate the file to avoid this
situation from happening.