Fix: ipv6_pinfo alignement issue when creating the master_sk

There is a bug in inet6_create when the pinet6 pointer is initialized.
Due to alignement problem the pointer does not correspond to
offsetof(struct tcp6_sock, inet6). Indeed, the pointer is computed
as sizeof(struct tcp6_sock) - sizeof(struct ipv6_pinfo) which can cause
problem when padding is added.

Here is the output of pahole on an object compiled for the ARMv7
architecture that shows that the compiler added 4 bytes of padding:
struct tcp6_sock {
	struct tcp_sock            tcp;                  /*     0  1296 */
	/* --- cacheline 20 boundary (1280 bytes) was 16 bytes ago --- */
	struct ipv6_pinfo          inet6;                /*  1296   140 */
	/* --- cacheline 22 boundary (1408 bytes) was 28 bytes ago --- */

	/* size: 1440, cachelines: 23, members: 2 */
	/* padding: 4 */
	/* last cacheline: 32 bytes */
};

Even if the structure of inet6 is copied after mptcp_inherit_sk, there is a
allignment missmatch due to the incorrect pointer set in inet6_create (in
the meta_sk). The solution chosen is to copy the content of inet6 from the
meta_sk to the one of the master_sk similarly to what is done in the regular
TCP/IPv6 stack.

Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>