Introduce EntityManager class

Reworking Entity-Manager to use OOP, which will help in further
refactoring. It increases maintainability and supports the 'separation
of concern' concept.

Tested:
QEMU/yosemite4 with probe statement set to TRUE.
```
root@yosemite4:~# journalctl | grep entity-manager
Dec 19 13:26:21 yosemite4 entity-manager[502]: Clearing previous configuration
Dec 19 13:26:25 yosemite4 entity-manager[502]: Inventory Added: Yosemite 4 Management Board
root@yosemite4:~# busctl tree xyz.openbmc_project.EntityManager
`- /xyz
  `- /xyz/openbmc_project
    |- /xyz/openbmc_project/EntityManager
    `- /xyz/openbmc_project/inventory
      `- /xyz/openbmc_project/inventory/system
        `- /xyz/openbmc_project/inventory/system/board
          `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/All_Fan
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P0V6_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P12V_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V0_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V2_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P1V8_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P2V5_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V3_RGM_V
OLT_V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V3_VOLT_
V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P3V_BAT_VO
LT_V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P5V_USB_VO
LT_V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_ADC_P5V_VOLT_V
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/MGNT_TEMP_C
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/PID_NIC_TEMP
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_MGNT_TEMP
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_NIC_TEMP
            |- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Stepwise_SENTINEL_D
OME_SLOT_PRESENT_PERCENTAGE
            `- /xyz/openbmc_project/inventory/system/board/Yosemite_4_Management_Board/Zone_1
```

Creates the same result as previous commit on qemu/yosemite4 with
adapted config set to TRUE.

Change-Id: I0829e073bedf24cb127ad247827e169894f4e962
Signed-off-by: Christopher Meis <christopher.meis@9elements.com>
diff --git a/src/entity_manager/perform_scan.hpp b/src/entity_manager/perform_scan.hpp
index ae57582..54d0e67 100644
--- a/src/entity_manager/perform_scan.hpp
+++ b/src/entity_manager/perform_scan.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include "../utils.hpp"
+#include "entity_manager.hpp"
 
 #include <systemd/sd-journal.h>
 
@@ -24,10 +25,8 @@
 
 struct PerformScan : std::enable_shared_from_this<PerformScan>
 {
-    PerformScan(nlohmann::json& systemConfiguration,
-                nlohmann::json& missingConfigurations,
+    PerformScan(EntityManager& em, nlohmann::json& missingConfigurations,
                 std::list<nlohmann::json>& configurations,
-                sdbusplus::asio::object_server& objServer,
                 std::function<void()>&& callback);
 
     void updateSystemConfiguration(const nlohmann::json& recordRef,
@@ -35,10 +34,9 @@
                                    FoundDevices& foundDevices);
     void run();
     virtual ~PerformScan();
-    nlohmann::json& _systemConfiguration;
+    EntityManager& _em;
     nlohmann::json& _missingConfigurations;
     std::list<nlohmann::json> _configurations;
-    sdbusplus::asio::object_server& objServer;
     std::function<void()> _callback;
     bool _passed = false;
     MapperGetSubTreeResponse dbusProbeObjects;