mptcp: fix init_buffer_space

This patch fixes the initialization of receive buffer space. The current flow
in MPTCP to decide the initial window_clamp is: mptcp_init_buffer_space() ->
tcp_init_buffer_space() -> meta_tp->window_clamp = master_tp->window_clamp.
The window_clamp for the master is computed in tcp_init_buffer_space(). Its
value is capped to tcp_full_space() computed on the meta socket receive buffer
space. The issue is that the meta socket buffer space is only computed after
the call to tcp_init_buffer_space() which makes the computation erroneous when
dynamic buffer tuning (DRS) is enabled. In this case the receive buffer space
must be larger in order to avoid the sender being limited by the annouced
window. As MPTCP therefore uses a too small initial window DRS fails in some
cases.

This patch solves the issue by ensuring a separation when computing the buffer
space. As now MPTCP has different callbacks than TCP we can ensure that
tcp_full_space() is called on the meta_sk in the MPTCP cases. Note that we made
the same modification for tcp_space() for consistency reasons.

In our testing lab we experimented MPTCP with a single subflow and TCP in a
path that has a 100ms RTT. We found that often MPTCP was not able to increase
its buffer size and performs really poorly compared to TCP that always
performed well. In these experiments MPTCP announced a fixed window of 42230
bytes while TCP's window grows to 2078336 bytes which corresponds to our values
of tcp_rmem. With this patch MPTCP always grow its window to 2MB.

Fixes: Zero-day bug
Reviewed-by: Sébastien Barré <sebastien.barre@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@gmail.com>
mptcp: fix penal in slow start

The penalization algorithm should not reduce the slow start threshold when
the subflow is in slow start phase. If tcp_metrics is disable the issue does
not arise due to sshthresh == TCP_INFINITE_SSTHRESH. However, if tcp_metrics
is enabled the second time a subflow is established to the same destination
and that the penalization algorithm is required the slow start threshold will
be reduced. This will cause the subflow to start the congestion avoidance
phase too quickly.

Fixes: cbed45c55807 (Don't kill slow-start)
Reviewed-by: Sébastien Barré <sebastien.barre@uclouvain.be>
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@gmail.com>

Conflicts:
	net/mptcp/mptcp_sched.c
mptcp: fix lia Kconfig

Change all references to coupled to lia.

Fixes: 28b17c26770b (mptcp: Change name of Coupled to Lia)
Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@gmail.com>