mptcp: Use sk_clone_lock instead of mptcp_sk_clone

This patch removes mptcp_sk_clone and mptcp_inherit_sk
in order to use sk_clone_lock. Modifications done here:
- doesn't signal IPv6 addresses on pure v4 meta-socket;
- send RST if SYN+MP_JOIN with IPv6 addresses is received
on pure v4 meta-socket;
- makes the reclassification of lock-class for subflows;
- removes mptcp_v6v4_syn_recv_sock because is not directly
used anywhere.

Signed-off-by: Doru Gucea <doru.gucea@intel.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: Remove functions used for IPv6 subflows on pure IPv4 meta-socket

This patch removes ipv6 functions which checks if meta is V4:
- mptcp_v6_send_synack;
- mptcp_v6_rtx_synack;
Removing the above two functions allowed me to remove
mptcp_v6v4_send_synack.

tcp_v6_init_req doesn't contain MPTCP code because pinet6
pointer can't be null.

Hack for inet6_csk_route_req by using mptcp_v6_route_req was
removed.

Signed-off-by: Doru Gucea <doru.gucea@intel.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: IPV6_V6ONLY functionality

This patch doesn't allow IPv4 subflows on IPv6 meta-sockets if
IPV6_V6ONLY is set. It also send a RST if SYN+MP_JOIN with IPv4
addresses is received on an IPv6 meta-socket.

Signed-off-by: Doru Gucea <doru.gucea@intel.com>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>