mptcp: Remove tsq-limitation for MPTCP

Since Eric updated tsq to the dynamic sk_pacing_rate, the previous
tsq-limitation in MPTCP is not working anymore. And adapting MPTCP to
work with tsq dynamic pacing will need more work.

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: Use skb_unclone inside the MPTCP-stack

skb_unclone does not check for skb_is_nonlinear(). 18ddf5127c9f (tcp:
must unclone packets before mangling them) uses this approach throughout
the TCP-stack. We have to do the same - otherwise we might mess up with
packets inside the MPTCP-stack that are cloned (e.g., when reinjecting
data from one subflow to another).

Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: correctly handle the tsq-callback-list

In mptcp_tsq_flags, we check for next_cb, if we want to add the sk to
the callback-list. Well, next_cb can well be NULL if the sk is the last
one in the list.

Then, we will create a loop in the callback-list, as mptcp_tsq_flags
will set the next_cb-pointer to the socket itself (if he is the only one
in the callback-list).

This patch fixes it, by making the callback-list a struct list_head.
That way we can check with list_empty() if the socket is inside the
callback-list. Further, we replace the mptcp_sock_destruct-stuff with a
BUG_ON(), because a socket should never ever be within the callback-list
when the refcnt becomes zero.

Reported-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>