MCDVoiceCooldown 1.0.120 更新日志

本版目标：SavedList 刷新性能优化。

1. 新增 UI/SavedListRefresh.lua
   - 统一管理 SavedList:Refresh()、RequestRefresh()、RenderCached()、ToggleGroupCollapsed()。
   - 展开合集继续合并到下一帧刷新。
   - 收拢合集优先使用缓存行移除子项，不全量重建。
   - 增加刷新重入保护，避免刷新过程中再次触发刷新导致重复构建。

2. 优化 UI/SavedListBuilder.lua
   - 单次 BuildLayout 内缓存 GetSavedListLayoutForScope() 结果。
   - 避免同一次刷新内反复构建相同职业/专精范围的列表行。

3. 优化 Core/SavedListLayout.lua
   - 缓存 GetStoredEntryMap()、职业名、专精名、载入状态判断。
   - 折叠合集计数增加缓存，降低大型合集展开/收拢后的刷新成本。

4. 优化 UI/SavedListRows.lua
   - 普通语音行文本和合集行文本增加行内缓存。
   - 缓存渲染、标题收拢、合集收拢时不重复拼接同一行文本。

未改动：
- 固定 CD 提醒
- 施法成功提醒
- 延时播放
- 嗜血提醒
- 保存格式
- 导入/导出字符串格式
