dns: ask the compiler's help to implement move semantic

This way, our implementation of move semantic is robust against
changes such as the addition of attributes, that is, we do not
need to worry about propagating the addition of an attribute to
the implementation of move semantic.

Moreover, we don't need to write tests for this, and we don't
need to remember to update tests for this.

Decided to do this instead of writing a test for move semantic, which
shows that writing tests is good for a software project.