pcie_bifurcation: Fetch bifurcation at a PCIe slot with hardcoded values

This will read a json config and return the bifurcation based on that.
It will read the configure file in a persistent file to see if it is
valid machine config and return the bifurcation information
accordingly.

For example,
If it is valid config, it will return 8x8 for PE1,3,4,6.

Tested:
Unit tests passed.

Physical Tests.

PE0 -> no bifurcation
PE1 -> x8x8

```
$ ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x0f 0
 79 2b 00 0b 00

$ ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x0f 1
 79 2b 00 0b 02 08 08
```

Change-Id: I44aefbfb26372f8bc0069343c8a6d07d3cf6f42d
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/handler_impl.hpp b/handler_impl.hpp
index f46e79c..4a3f5dc 100644
--- a/handler_impl.hpp
+++ b/handler_impl.hpp
@@ -14,6 +14,7 @@
 
 #pragma once
 
+#include "bifurcation.hpp"
 #include "handler.hpp"
 
 #include <cstdint>
@@ -37,7 +38,12 @@
 {
   public:
     explicit Handler(const std::string& entityConfigPath = defaultConfigFile) :
-        _configFile(entityConfigPath){};
+        _configFile(entityConfigPath),
+        bifurcationHelper(BifurcationStatic::createBifurcation()){};
+    Handler(std::reference_wrapper<BifurcationInterface> bifurcationHelper,
+            const std::string& entityConfigPath = defaultConfigFile) :
+        _configFile(entityConfigPath),
+        bifurcationHelper(bifurcationHelper){};
     ~Handler() = default;
 
     std::tuple<std::uint8_t, std::string>
@@ -54,6 +60,7 @@
     void hostPowerOffDelay(std::uint32_t delay) const override;
     std::tuple<std::uint32_t, std::string>
         getI2cEntry(unsigned int entry) const override;
+    std::vector<uint8_t> pcieBifurcation(uint8_t) override;
 
     uint32_t accelOobDeviceCount() const override;
     std::string accelOobDeviceName(size_t index) const override;
@@ -89,6 +96,8 @@
     nlohmann::json _entityConfig{};
 
     std::vector<std::tuple<uint32_t, std::string>> _pcie_i2c_map;
+
+    std::reference_wrapper<BifurcationInterface> bifurcationHelper;
 };
 
 /**