mptcp: Fix Issue #36: Correctly set initial snd/rcv-buffer

It may be that the user manually set the receive/send-buffer with
SO_RCV/SNDBUF. tcp_init_buffer_space correctly handles this. But,
mptcp_init_buffer_space did not respect this.

Additionally, upon establishment of the initial subflow, we set
the rcv-buffer to meta_sk->sk_rcvbuf + sk->sk_rcvbuf. So, the rcvbuf
was actually way too high in the beginning. If only the initial subflow
exists, MPTCP should behave as regular TCP!

This patch fixes it, by redesigning mptcp_init_buffer_space. In case
only the initial subflow exists, the values from the subflow are taken
over to the meta-socket. This implicitly handles the user-locks too.

For additional subflows, we check the user-locks and then decide whether
to increase or not the receive/send-buffer. For the send-buffer we also
change the logic, as we actually just want to add up a bit the
send-buffer to allow transmission of data - in the same way as for the
receive-buffer.

Reported-by: Reported-by: Eduard Creciun <eduard.creciun@student.uclouvain.be>
Fixes: Bug #36 (https://github.com/multipath-tcp/mptcp/issues/36)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>