[ICD] Creation of ICDManager classes (#26523)

* Creation of ICDManager

* restyle

* refactor object management

* add shutdown

* restyle

* Add event callback

* restyle

* make the changes in the wifi file

* fix typos
add missing define

* address review comments

* restyle

* add missing define

* move files

* Remove handler in shutdown

* refactor ICD Manager structure

* restyle

* remove line

* fix ifdef

* address comments on comments

* refactor gn files

* restyle

* address comments
diff --git a/src/app/BUILD.gn b/src/app/BUILD.gn
index f76663c..38e5340 100644
--- a/src/app/BUILD.gn
+++ b/src/app/BUILD.gn
@@ -18,6 +18,7 @@
 
 import("${chip_root}/build/chip/buildconfig_header.gni")
 import("common_flags.gni")
+import("icd/icd.gni")
 
 declare_args() {
   # Enable strict schema checks.
@@ -210,6 +211,10 @@
     "${nlio_root}:nlio",
   ]
 
+  if (chip_enable_icd_server) {
+    public_deps += [ "${chip_root}/src/app/icd:server-srcs" ]
+  }
+
   cflags = [ "-Wconversion" ]
 
   public_configs = [ "${chip_root}/src:includes" ]