Polish up the BonjourDiscoveryAgent.

This adds the following:
 - The ability to change scopes while running.
 - Support for all the TXT record keys.
 - Ability to register multiple controllers.
 - Ability to de-register a controller.