Reorganize mDNS advertisement

mDNS is now handled more or less in the same way audio is.
Multiple mDNS backends are available, shairport tries them all until one
works.

This makes it, IMHO, cleaner, and easier to add other mDNS backends in
the future, such as using tinysvcmdns or dns-sd library.
Also it will also allow to define mDNS backends as plugins, in a similar
way it is done in PR #230.
Add a command-line option to force the mDNS backend

Add this option to the system-v init script.
Add a new mDNS backend based on tinysvcmdns

This backend allows shairport to run without having a heavy daemon such
as avahi or mDNSResponder running in the background.
It currently only supports ipv4 interfaces.
Add a new mDNS backend which uses mDNSResponder

This backend uses mDNSResponder, like the external-dns-sd one. However,
this one uses the dns-sd library instead of relying on an external
program.