Common: Add a generic class for accessing bitfields in a fast and endianness-independent way.

The underlying storage type of a bitfield can be any intrinsic integer type,
but also any enumeration.

Custom storage types are supported if the following things are defined on the storage type:
- casting 0 to the storage type
- bit shift operators (in both directions)
- bitwise & operator
- bitwise ~ operator
- std::make_unsigned specialization
UnitTests: Add tests for BitField.
BPMemory: Use the new BitField class in two selected structures.
BPMemory: Expose the pixel_format and zformat fields in PE_CONTROL as enumerations.
BPMemory: Make use of BitField in a number of structures.