Reduce OatWriter RAM usage for non compilation filters

Avoid allocating full oat classes if compilation is not enabled.

This is accomplished by splitting OatClass into a new OatClassHeader
class that only has status, type, and offset members. This saves
RAM since it is much smaller than the full OatWriter::OatClass.

Maximum resident set size from /usr/bin/time -v on host dex2oat
with compiler filter verify -j4: 287248k->276716k

Bug: 63467744
Test: test-art-host

Change-Id: I6812c259cb8c8c56e122636438a76fdcc1b9a41d
2 files changed