feat(wm-iot): #30 设备影子服务+OTA固件升级完整实现
- entity: DeviceShadow, OtaFirmware, OtaTask, OtaUpgradeRecord
- service: DeviceShadowService (Redis Hash + TTL 24h, 上报/期望/delta/离线检测/批量查询)
- service: OtaService (固件管理/升级任务创建按批次/进度追踪/结果统计)
- controller: DeviceShadowController /api/iot/shadow/*
- controller: OtaController /api/iot/ota/*
- config: RedisConfig (RedisTemplate JSON序列化)
- SQL DDL: iot_ota_firmware, iot_ota_task, iot_ota_upgrade_record
- test: DeviceShadowServiceTest + OtaServiceTest (mock Redis + mock DB)