Fix EPUB reader OOM panic and support missing container.xml
- Replace Vec::clear() with Vec::new() in chapter cache to actually
deallocate memory, preventing heap exhaustion on reopen
- Make central directory allocation fallible with try_reserve_exact()
instead of panicking
- Add epub::find_opf_in_zip() fallback for EPUBs without container.xml