factor out struct tcphdr

that struct is unportable (neither C nor POSIX) and depends on
glibc specific hacks to get the right definition anyway,
so it's better to provide our own copy.
fixes build on musl libc.
tcphdr.h: remove unneeded typedef
Merge pull request #248 from rofl0r/tcphdr

factor out struct tcphdr