mptcp: handle fastopen_req at the meta-level

fastopen uses the field fastopen_req in struct tcp_sock to store information
of the data sent inside the SYN. When we create the master_sk, this data (pointer)
is copied to the master_sk. fastopen_req is supposed to be freed in tcp_sendmsg
(after waiting that the connection is established) -- which will happen for the
meta_sk. If the connection abort before the establishment the memory will be freed
in tcp_v4_destroy_sock -- which will happen for the master_sk. This causes a double
free error.

This patch does not ensure that TFO and MPTCP will work together. MPTCP will
actually fallback to regular TCP. The patches implementing the support of TFO in
the MPTCP stack will be sent later.

Fixes: cf60af03ca4e7 (net-tcp: Fast Open client - sendmsg(MSG_FASTOPEN))
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>