ASL version-based validation of required and unexpected fields, part 1

Asl objects were decoupled from AslMarshallable because not all Asl objects follow the same pattern. Also added version mapping logic, which maps a version number to the required or recognized fields for that version for each object. These can be updated as needed as future versions are released.

Bug: 350566067
Test: Unit tests
Flag: NONE (Command-line tool which doesn't affect Android functionality)
Change-Id: Ica0d3d6cb192d1663f9571a42c088b312c94c21c
55 files changed