BitField: Fix alignment issues.

At least one platform (ARM with NEON instructions enabled) generates SIGBUSes if BitField objects aren't aligned properly.
UnitTests: Add a test for BitField behavior on odd structure alignment.
CPMemory: Use BitField in data structures.
BitField: Add functionality for accessing BitFields in an array-like way.
Rename BitFieldArray helper macro.
BitField: API improvements.
BitField: Fix alignment and documentaiton issues.
BitField: Make ArrayElement a private subclass of BitFieldArray.
BitField: Further cleanups
BitField: More work.
UnitTests: Add tests for BitFieldArray.
CPMemory: Expose vertex component types as an enum.
NativeVertexFormat: Use BitField instead of bitmasks for the "components" variable.
VertexLoader: Move private VtxAttr class from CPMemory to VertexLoader.
VertexLoader: Cleanups.
VertexLoader: Cleanups by using BitFieldArray.
VertexLoader: Move VAT substructures into the actual VAT structure.
CPMemory: Get rid of the annoying g0/g1/g2 variables and access their members directly instead.
Software renderer: Small cleanup in the vertex loader.
Cleanup VertexComponents usage.
Again.
VertexLoader: More API fixes.
Cleanups using BitFieldArray.
SWVertexLoader: Cleanups.
VertexLoader: Remove obsolete code.