SO MUCH WORK

DNS typechecks now (\o/!) And in the process of getting it going. Fixed
an error with the DNS packet structure.
Fixed some bitrot. Added some nasty hacks (for now) for getting the buffer
pointer after it's been used to unmarshal -- this MUST be freed after
we've finished with it (TODO!).

Currently a nasty bug with list unmarshalling that's messing things up.
Fun stuff to do tomorrow!