gvariant: Realign data on construction if it’s not properly aligned
Otherwise the GVariant would later fail internal alignment checks, aborting the program.
If unaligned data is provided to (for example) g_variant_new_from_data(), it will copy the data into a new aligned allocation. This is slow, but better than crashing. If callers want better performance, they should provide aligned data in their call, and it will not be copied or reallocated.
Includes a unit test.
Signed-off-by: Philip Withnall withnall@endlessm.com
Closes #1342 (closed)