Datagram: Don't use memcpy where unnecessary.
Byteorder: Properly swap multibyte datatypes on big endian systems. 128-bit support coming later.
128bit: Have uint128_t use the same variable to detect endianness.

At a glance, 128-bit looks like it should run big-endian fine, but I don't have it setup to test right now.
Merge branch 'bugfix/endian-correctness'
The branch might continue being developed, but the current improvements don't break any existing unittests for little-endian, so I'd like to bring them in master.