Err, yea I probably should have done this in smaller bits, but it
just kept breaking the compile and I hate committing un-compilable code.
Did a major refactor to using a new DataBuffer class instead of a bunch
of variables and pointer references. Also converted mdns_packet to a C++
class.