I've spent some time understanding how the `MpqWriter` works
and cleaned it up a bit and renamed some variables for clarity.
1. Fixes all signedness and clang-tidy warnings.
2. Renames variables, structs, and methods for clarity.
3. Marks structs used for I/O as packed.
4. Adds comments in a few places.
5. Eliminates recursion from `MpqWriter::AllocBlock` (a clang-tidy
warning).