fix: dev: Enforce type checking for dns_dbnode_t
Originally, the dns_dbnode_t was typedef'ed to void type. This allowed some flexibility, but using (void *) just removes any type-checking that C might have. Instead of using:
typedef void dns_dbnode_t;
use a trick to define the type to non-existing structure:
typedef struct dns_dbnode dns_dbnode_t;
This allows the C compilers to employ the type-checking while the structure itself doesn't have to be ever defined because the actual 'storage' is never accessed using dns_dbnode_t type.