Fix: Handle error-signals correctly while in fallback-mode

If we have fallen back to regular TCP, we should interpret a RST or any
other error-signal (e.g., coming from tcp_v4_err) as an error on the
whole connection.

This patch modifies mptcp_sock_def_error_report, to check on the
infinite-flags of the mpcb and propagate the error up to the
meta-socket.

Reported-by: Krishna Khanal <krishna.khanal2@citrix.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Tested-by: Krishna Khanal <krishna.khanal2@citrix.com>
Fix: Let meta-socket timeout if no subflow is ready to reinject

If we go to out_reset_timer, icsk_retransmits will not get increased,
and the meta-socket will *never* time out, hanging around there forever.

This patch adds a new label, allowing icsk_retransmits to be
incremented, if no subflow is available for sending.

Reported-by: Justin Collery <justin.collery@quantumvpn.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
Fix: Check for socket-state when combining dfin with subflow-fin

When checking if we can combine a data-fin with a subflow-fin, we look
if all subflows have nothing to send. We must check the socket's state,
because un-established sockets may still have the SYN-packet in their
write-queue.

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