Use a Map for DnsType int/string lookups per @normanmaurer's request; renames & consistent exception messages per @trustin