mptcp: Retransmitted SYN/ACK's+MP_JOIN should have the MP_JOIN

Since ba5d9b653e9, when a retransmitted SYN does not contain an
MP_CAPABLE, the SYN/ACK should also not contain an MP_CAPABLE.

Now, this is the way the RFC is specified.

However, for MP_JOIN's we also set the saw_mpc-flag in the request-sock,
but do not set it in the mopt's. Thus, in tcp_check_req upon a
retransmitted SYN+MP_JOIN, we will reply without an MP_JOIN inside the
SYN/ACK.

This patch fixes it, by setting the saw_mpc-flag in the mopt.

Fixes: ba5d9b653e9 (Fall back to TCP when receiving a packet without MP_CAPABLE.)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Optimized setting the MPTCP nonce on new subflows

On the client side, the nonce for new subflows was set in mptcp_syn_options(..),
thus needing an extra flag (nonce_set in struct tcp_sock) to see if it has been
already set or not (upon its generation the nonce could be set to 0, so verifiyng
its value would not be enough). As an optimization, we removed the nonce_set flag
and moved the initialization of the nonce when the connection is started and we
have all the necesarry fields initialized (inet_saddr, inet_daddr, inet_sport,
inet_dport and write_seq).

Signed-off-by: Cristina Ciocan <cristina.ciocan@intel.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>