Implement discovery commands

This commit does the following
- Implements the GetPLDMTypes and GetPLDMCommands commands. These are
  commands that need to be handled by a PLDM device as part of the
  initial PLDM discovery.
- Sets up the build infrastructure: separate libraries for PLDM
  encode/decode libs and the PLDM responder.

Change-Id: I65fa222d2a681c473f579c8e30d84faaf94fe754
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/libpldmresponder/base.hpp b/libpldmresponder/base.hpp
new file mode 100644
index 0000000..e4351d4
--- /dev/null
+++ b/libpldmresponder/base.hpp
@@ -0,0 +1,32 @@
+#pragma once
+
+#include <stdint.h>
+
+#include <vector>
+
+#include "libpldm/base.h"
+
+namespace pldm
+{
+
+using Type = uint8_t;
+
+namespace responder
+{
+
+/** @brief Handler for getPLDMTypes
+ *
+ *  @param[in] request - Request message payload
+ *  @param[out] response - Response message written here
+ */
+void getPLDMTypes(const pldm_msg_payload* request, pldm_msg* response);
+
+/** @brief Handler for getPLDMCommands
+ *
+ *  @param[in] request - Request message payload
+ *  @param[out] response - Response message written here
+ */
+void getPLDMCommands(const pldm_msg_payload* request, pldm_msg* response);
+
+} // namespace responder
+} // namespace pldm