This PR makes a number of enhancements to the setup flow.
The zeroconf and user setup won't follow the exact same flow. Making the code easier to manage.
Use the SysAP serial number to set the unique id on both zeroconf and user flows. This should ensure that zerconf doesn't recognize the device as a new device even if the SysAP name is changed. This also ensures the user can't setup the integration twice for the same SysAP.
When deleting the integration, ensure the websocket gets closed.
This PR makes a number of enhancements to the setup flow.