Add VirtualMedia schema to Redfish

This change adds VirtualMedia scheme to Redfish.
Implementation is based on input from virtual-media module
and nbd proxy which is a bmcweb part. The code is used
only in case ndb-proxy is supported in bmcweb
(BMCWEB_ENABLE_VM_NBDPROXY compilation flag).

Tested:
* Manual tests together with nbd proxy and virtual media app
  - For requests: Postman and/or HTTPie, started with logs
    enabled and Valgrind
  - Manual result validation
* Tests ran:
  - GET on collection with manual validation
  - PUT/POST/DELETE on collection
  - GET on item/nonexistent item
  - PUT/POST/DELETE on item
* Redfish Service Validator tested, no new issues found.

Signed-off-by: Przemyslaw Czarnowski <przemyslaw.hawrylewicz.czarnowski@intel.com>
Change-Id: I5415dc0ffe52069fd35bc614b0378bbc4ad41ff6
diff --git a/redfish-core/include/redfish.hpp b/redfish-core/include/redfish.hpp
index 715b4a4..c498a19 100644
--- a/redfish-core/include/redfish.hpp
+++ b/redfish-core/include/redfish.hpp
@@ -35,6 +35,9 @@
 #include "../lib/systems.hpp"
 #include "../lib/thermal.hpp"
 #include "../lib/update_service.hpp"
+#ifdef BMCWEB_ENABLE_VM_NBDPROXY
+#include "../lib/virtual_media.hpp"
+#endif // BMCWEB_ENABLE_VM_NBDPROXY
 #include "webserver_common.hpp"
 
 namespace redfish
@@ -124,6 +127,10 @@
         nodes.emplace_back(std::make_unique<SystemActionsReset>(app));
         nodes.emplace_back(std::make_unique<BiosService>(app));
         nodes.emplace_back(std::make_unique<BiosReset>(app));
+#ifdef BMCWEB_ENABLE_VM_NBDPROXY
+        nodes.emplace_back(std::make_unique<VirtualMedia>(app));
+        nodes.emplace_back(std::make_unique<VirtualMediaCollection>(app));
+#endif // BMCWEB_ENABLE_VM_NBDPROXY
 #ifdef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
         nodes.emplace_back(std::make_unique<DBusLogServiceActionsClear>(app));
         nodes.emplace_back(std::make_unique<DBusEventLogEntryCollection>(app));