Return service instance on Register() and RegisterProxy()

Those methods returned the shutdown channel before, which was used for signaling a shutdown.
On server shutdown multicast messages are sent for SRV and TXT records with TTL 0. From the outside
you don't know how long this takes. It may happen that the app terminates before any message
was successfully sent. Now Shutdown() is called manually which returns when all messages were sent.

Add method to set and announce new text records