Fully implement valid replying of DNS questions.
Now uses unsigned datatypes for encoding and decoding to avoid nasty
bugs.