control: Parse/add zones to manager

The manager will create and manage the zone objects across the entire
system. This required additional updates to how the profiles were
determined and restrict to only creating objects if their configured
profiles(which is optional) is active or no profile was configured.

Also reorganized some functionality into the manager object so the JSON
parser object can be removed once the full JSON code path is complete.

Change-Id: Ieb5d87a3d0789fee5e9cdde97217b3532add73df
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/json/zone.hpp b/control/json/zone.hpp
index 09c1dac..4f7742c 100644
--- a/control/json/zone.hpp
+++ b/control/json/zone.hpp
@@ -19,6 +19,7 @@
 #include "types.hpp"
 
 #include <nlohmann/json.hpp>
+#include <sdbusplus/bus.hpp>
 
 #include <any>
 #include <functional>
@@ -67,9 +68,10 @@
      * Constructor
      * Parses and populates a zone from JSON object data
      *
+     * @param[in] bus - sdbusplus bus object
      * @param[in] jsonObj - JSON object
      */
-    Zone(const json& jsonObj);
+    Zone(sdbusplus::bus::bus& bus, const json& jsonObj);
 
     /**
      * @brief Get the full speed