- Add icmp_set_dont_fragment() using IP_MTU_DISCOVER/IP_PMTUDISC_DO
- Add next_mtu field to icmp_offending_packet_t, populated from the
outer ICMP header on type=3/code=4 (frag needed) replies
- Fix extract_offending: read MTU from outer ICMP, not embedded packet
- Update test to match corrected extraction semantics
- Clean up checksum odd-byte handling with a static zero sentinel
- Update Makefile:
- Change test binary name to `libicmp.test`.
- Add `-Wpedantic` and `-Wconversion` to global CFLAGS for stricter
warnings.
- Add dedicated `TEST_CFLAGS`.
- Ensure test build uses `TEST_CFLAGS`.
- Refactor code for better correctness.
BREAKING CHANGE: Test binary is now named `libicmp.test` instead of
`test.out` and stricter compiler flags may trigger new warnings or
errors in code outside this patch.