sd-dhcp-client: assert that we can only create DISCOVER or REQUEST messages
sd-dhcp-client: document message creation a bit more

Also reshuffle some code to make the correspondence with the RFC a bit more
obvious.

Small functional change: fail if we try to send a message from the wrong state.
networkd: add an assert

This error should never happen, so replace the check with an assert. The check
was anyway broken due to an uninitialized return value.

Reported by Thomas Hindoe Paaboel Andersen <phomes@gmail.com>.