net: do some cleanups and backport tcp friends v4 patch

Now tcp friends patch has been applied into ali kernel.  But the version
of this patch is v3.  Later the patch has been updated and a newer patch
set has been sent out.  So this patch backport v4 patch.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
For tcp friends data skb, it has no tcp header,
and its transport_header is NULL, so it will panic if we deference tcp_hdr(skb)
in tcp_close().

So I add a check before we use tcp_hdr().

Signed-off-by: Weiping Pan <wpan@redhat.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
The sock pointed by request_sock->friend may be freed since it does not have a
lock to protect it.
I just delete request_sock->friend since I think it is useless.

For sk_buff->friend, it has the same problem, and we use
"atomic_add(skb->truesize, &sk->sk_wmem_alloc)" to guarantee that the sock can
not be freed before the skb is freed.

Then for 3-way handshake with tcp friends enabled,
SYN->friend is NULL, SYN/ACK->friend is set in tcp_make_synack(),
and ACK->friend is set in tcp_send_ack().

Signed-off-by: Weiping Pan <wpan@redhat.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>