Move lengthy process from callback to coroutine
At startup, and after any HA zone or HA's core config is changed, a list of zones is created to be used in the config flow. Each zone's time zone needs to be determined, and this process can take a significant amount of time. This was being done in an event loop callback, which can have a negative effect on overall system performance and responsiveness. This change moves that code into a coroutine which yields to other tasks after each zone's time zone is determined.