C++: Add support for integers of different endianness

Use Boost.Endian to provide big, little and native integer and float types.

Testing: the ome-compat/endian test will make sure the headers and types work to an extent, but is not comprehensive and does not check the underlying storage.