fix: uniformly treat margin as unsigned in pack.c
Although margin is an unsigned int in pack_info, it was being passed around as a signed int within pack.c. UBSan identified seven undefined overflows that happened as a result of this with the following input:
digraph G {rLn pack=-11335142740g}er-
Fixes #1681 (closed). Several of these were also pointed to by -Wsign-conversion compiler warnings.