mptcp: Cleanup

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Fix: Support mptcp ofo-queue coalescing and collapsing

When we are under memory-pressure, because the truesize/payload-ratio
has been underestimated the TCP-stack does ofo-queue coalescing to bring
the stack back into normal state.

We did not have this implemented for MPTCP.
This patch supports now ofo-queue coalescing and collapsing of the ofo
and the receive-queue. The results are really good:

In uml, setting tcp_adv_win_scale to 0, to force an underestimation,
doing an iperf-session

Before:
~250Mbps

After:
~600Mbps

And, we collapsed more than 100000 packets:
TcpExtTCPRcvCollapsed           105252

Reported-by: Nils Caspar <ncaspar@me.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: Fix Bug#23: Correctly handle congestion-window limitations

We may encounter cwnd-limitations after choosing a subflow, because we
change tso_segs afterwards. If this happens on a DATA_FIN with data, we
might reject this segment, if tso_segs becomes bigger than 1.

This patch fixes this, by correctly handling cwnd-limitations. If the
subflow is limited, we avoid reselecting this one and choose another
subflow.

Reported-by: cjqing0925 (https://github.com/cjqing0925)
Fixes: https://github.com/multipath-tcp/mptcp/issues/23
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>