Eliminates boilerplate across 7 wrapper classes (GetContainerIp,
GetHostInfo, GetOutboundGateway, GetServiceManifest, GetSslCertificate,
GetStatus, GetSystemSmtp) by moving shared const/once/watch/onChange/
waitFor logic into an abstract Watchable<T> base class.
- Extract DbWatchedCallbacks<K> abstraction in callbacks.rs using SyncMutex
for the repeated patchdb subscribe-wait-fire-remove callback pattern
- Move get_host_info and get_status callbacks to use TypedDbWatch instead of
raw db.subscribe, eliminating race conditions between reading and watching
- Make getStatus return Option<StatusInfo> to handle uninstalled packages
- Add getStatus .const/.once/.watch/.onChange wrapper in container-runtime
for legacy SystemForEmbassy adapter
- Add SDK watchable wrapper classes for all callback-enabled effects:
GetStatus, GetServiceManifest, GetHostInfo, GetContainerIp, GetSslCertificate