mptcp: fix flat cwnd in congestion avoidance phase

The default scheduler only queues data to fill a congestion window. This is
a good practice but it does not fit with the way tcp_write_xmit works.
The latter only considers that we are cwnd limited if there exists a segment
that does not fit the cwnd. This will never be the case in MPTCP. This will
cause the congestion algorithm used by MPTCP to never grow its cwnd in the
congestion avoidance phase because tcp_is_cwnd_limited() will always
return false.

This patch moves cwnd_validate() as a new ops that is only used for TCP. This
ensures that calls to cwnd_validate() will be ignored for MPTCP subflows.
mptcp_write_xmit now performs a call to tcp_cwnd_validate() on each subflow on
which data were pushed with the parameter is_cwnd_limited set to true when the
cwnd is full.

Fixes: 453e734c07ed (Merge tag 'v3.16' into mptcp_trunk)
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>