Fix: Clone reinjected skb's in mptcp_skb_entail

We have to clone them, because after the call to tcp_transmit_skb, we
need easy-access to the data-sequence number.
Cloning the skb is only a minor performance penalty, as reinjections are
rather seldom, and it facilitates the subsequent code.

This patch also removes some very obsolete comments.

Reported-by: Shinkai Takumi <shinkai@net.cne.okayama-u.ac.jp>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Fix: Don't mark reinjected packets

If the packet-boundaries do not match, this will bring problems. It's
best to not mark them and allow occasional retransmission on the same
subflow.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Cleanup

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>

Conflicts:
	net/mptcp/mptcp_output.c
Make mptcp_options_received lighter

Remove mpcb-pointer.
It was used for two purposes:
1. Validating the key in case of fast-close
	This got solved by storing the key in a generic mptcp_key field
	in mptcp_options_received.
2. Getting the index of the upper 64-bits. This is now handled inside
   mptcp_data_ready and its subsequent calls.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Add a refcnt to the mpcb

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Correctly handle time-wait-socks

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Check key in tcp_timewait_state_process

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Correctly data-ack on time-wait sockets

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>