mdns: replace mcast.go with go.net package

This was pretty ugly code, and go.net provides a nicer interface anyway. Though
it separates the ipv4 and ipv6 support in different packages which may
complicate implementing proper ipv6 support.
mdns: add initial RCode support
moodns: add support for forwarding of unicast queries

This is really just a hack to avoid having to install nss-mdns and avahi. Only
tested with the glibc and the bind resolvers.
etc: add systemd service file
main: refactor client request code
moodns: support listening on multiple addresses

This makes it possible to listen on :53 and :5353 at the same time in order to
make the "multicast forward" thing work with resolvers that don't allow setting
a name server port (e.g. glibc's) but also retain support for proper multicast
DNS.
mdns: only forward queries from loopback addresses

This prevents moodns to forward queries directed to the multicast address, but
also the unicast ones not originated from the local host.