This enables getting and setting the IPv4 address on tun interfaces on macOS
They were previously only present on Apple platforms.
This involved refactoring the crate structure to share code between macOS and Linux. The new methods have not yet been implemented on macOS, but they have todo!() placeholders.