Fix: Close remaining subflows when the meta socket disappears

We may enter tcp_v4_destroy_sock, while there are still active subflows.
This may happen e.g., when the closure is unsuccessfull due to a
retransmission timeout (tcp_write_err). We should then close the
subflows, because otherwise they will hang around there forever, waiting
for a call to mptcp_sub_close - which will never happen.

We try to do graceful closure of the subflows (not using
mptcp_sub_force_close), as the subflows may still be usable - and we
always prefer graceful closure.

Reported-by: Justin Collery <justin.collery@quantumvpn.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Tested-by: Justin Collery <justin.collery@quantumvpn.com>
Fix: Launch keepalive-timer on FIN_WAIT2-sockets

If the socket enters FIN_WAIT2 and he is dead, we have to launch the
keepalive-timer if we don't want to enter tcp_time_wait(). Otherwise he
will hang around there forever, because the app has already given up on
the socket, and no timer is referencing him anymore.

This code must get removed again as soon as we support TIME-WAIT-sockets
correctly.

Reported-by: Justin Collery <justin.collery@quantumvpn.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Tested-by: Justin Collery <justin.collery@quantumvpn.com>
Cleanup

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