Added private constructor in ZoneCommandDispatcher

- ZoneCommandDispatcher is a singleton, only one instance should
  be allowed.
- SonosState no longer creates its own ZoneCommandDispatcher instance
Fixes for AbstractController and implementations

AbstractController now calls ZoneCommandDispatcher.registerZoneAsAvailable()
when a new zone is added.
Minor: ClientIT now uses variables for test rooms

- replaced 'salon' and 'chambre' strings in ClientIT with a variable
  to allow switching between sonos setups.