So Avahi didn't work out.  Some internals to the Avahi library prevent
this from working. Basically it tries to take ownership of the names so
if a device switches from say wired to wireless it will get a name conflict
on the wireless because Avahi is trying to claim the name still.

New code written from the ground up to be a lightweight Multicast DNS
library. New method will be based on the idea of the reflection like Avahi
has but will allow filtering based on protocol and interface.