ike: Rename encryption_payload to encrypted_payload
ikev1: Move fragment generation to message_t
message: Make packet argument optional in generate()
message: fragment() generates message and fragments and caches them
ike: Move fragmentation to ike_sa_t

The message() hook on bus_t is now called exactly once before (plain) and
once after fragmenting (!plain), not twice for the complete message and again
for each individual fragment, as was the case in earlier iterations.

For inbound messages the hook is called once for each fragment (!plain)
and twice for the reassembled message.
ikev1: Move defragmentation to message_t
ikev2: Add notify for IKEv2 fragmentation
ikev2: Negotiate support for IKEv2 fragmentation
message: Split generate() in multiple functions
encrypted_payload: Extract some utility functions
encrypted_payload: Expose generate() to generate the plaintext
encrypted_payload: Encrypted payload can be constructed from plaintext
ikev2: Add encrypted fragment payload
message: Handle encrypted fragment payload similar to the encrypted payload
message: Fragment and reassemble IKEv2 messages
ike: Do not cache MID of IKEv2 fragments

This fails if there are unencrypted payloads before an encrypted
fragment payload in the first fragment.
ike: IKE_SA may fragment IKEv2 messages
ikev2: Send and receive fragmented IKE messages

If a fragmented message is retransmitted only the first packet is passed
to the alert() hook.
ikev2: Send retransmits using the latest known addresses

For instance, if a DPD exchange is initiated by the gateway when a
mobile client is roaming and it then gets a new IP address and sends
an address update via MOBIKE, the DPD retransmits would still be sent
to the old address and the SA would eventually get closed.
message: Ensure a minimum fragment length