libsystemd-network: Export checksum function to test case

Remove identical checksum function implementation from the test
case code.
libsystemd-network: Add hangcheck timer for DHCP client test
libsystemd-network: Restart DHCP acquisition if the lease expires

This causes the DHCP client struct initialization and DHCP client
starting to be factored out into functions of their own.
libsystemd-network: Add Init-Reboot support

Init-Reboot is tried if a client IP address has been given when
the DHCP client is started. In Init-Reboot, start by sending a
broadcast DHCP Request including the supplied client IP address
but without the server identifier. After sending the request,
enter Reboot state.

If a DHCP Ack is received, proceed to Bound state as usual. If a
DHCP Nak is received or the first timeout triggers, start the
address acquisition over from DHCP Init state.

See RFC 2131, sections 4.3.2, 4.4, 4.4.1 and 4.4.2 for details.