Use value types for class and type in DNS entries to make them immune to parameter order bugs

I just spent a few hours debugging why I was getting garbage responses from my embryonic jetty-based DNS server, and found it was because I had CLASS and TYPE reversed when passing them to `DnsResource`'s constructor.  Having two `int` parameters next to each other which mean very different things is dangerous and exactly what Java types are there to help avoid.

So that nobody else has this problem, I've created this patch which adds two classes, `DnsType` and `DnsClass` which are wrappers for the protocol values (and also have names).  Includes tests which pass and patches the rest of netty-dns to use them.
move the array out of the method and store it as static field. There is not need to re-create it on every call. Also maybe we want to not use an array but a Map for 0(1) lookup.