Fix VDEX header when no quickening info

When there is no quickening info to be written, the OatWriter logic
wrongly assumes that padding was written to align the file size to
32 bits. The file is therefore shorter than the size calculated from
header data. This patch fixes that.

Additionally, it enforces that OatWriter::WriteQuickeningInfo is
always called, which was not the case with some of our tests. This
requirement was already mentioned in OatWriter comments but not
adhered to.

Test: m test-art-host-gtest
Bug: 70267762
Change-Id: If25600761677efba173d7cac02931e71c6260f9d
4 files changed