Implement FRURecordTableMetadata and FRURecordTable command

This commit implements the GetFRURecordTableMetadata and GetFRURecordTable
in the PLDM specification DSP0257 for FRU data specification. The FRU table
is populated by the FRU handler class with the configs from the path
/usr/share/pldm/fru.

Tested:

On a Witherspoon system the Get FRURecordTableMetadata and FRURecordTable
command were executed and ensured the FRU table in the command response
matches with the D-Bus inventory properties.

Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Change-Id: I16d36df2834b65bfa5f69164d3a40eeac2c7f357
diff --git a/pldmd.cpp b/pldmd.cpp
index 648ae6c..a13383d 100644
--- a/pldmd.cpp
+++ b/pldmd.cpp
@@ -2,6 +2,7 @@
 #include "invoker.hpp"
 #include "libpldmresponder/base.hpp"
 #include "libpldmresponder/bios.hpp"
+#include "libpldmresponder/fru.hpp"
 #include "libpldmresponder/platform.hpp"
 #include "utils.hpp"
 
@@ -148,6 +149,8 @@
     invoker.registerHandler(PLDM_BIOS, std::make_unique<bios::Handler>());
     invoker.registerHandler(PLDM_PLATFORM,
                             std::make_unique<platform::Handler>());
+    invoker.registerHandler(PLDM_FRU,
+                            std::make_unique<fru::Handler>(FRU_JSONS_DIR));
 
 #ifdef OEM_IBM
     invoker.registerHandler(PLDM_OEM, std::make_unique<oem_ibm::Handler>());