Reduce memory allocations in msg.Copy()

Right now we do three memory allocations for RR slices. In theory we can just allocate a single slice. Of course the question is what happens when user does: `msg.Answer = append(msg.Answer, )`.

Alternatively we could set the slices to nil if the length is zero.