Correct len calculations to account for compression. Add tests.

len() calls would not correctly account for the extra pointer byte when
compression occurred. This was pronounced in RDATA that can be compressed as
well, meaning that the len function needed to mimic packStructValue more
closely, accounting for `cdomain-name` tags. This patch doesn't use reflection
but hardcodes this accounting into the len function.

This also reverts
"Fix length computation for TXT" 795a69a6ec3415e61e7f3cf7b42342d6604528df
which seemed to exclude the first length octet from the a TXT RDATA when asked
for the RR length.
Changed TestLenCompress to use error inducing name

Long labels cause a packing out of bounds error. It is thrown at msg.go:268 in
the PackDomain function. It happens with messages of any construction (no RR
data, some RR data etc.).