veliad: Instantiate IETFHardware and Sysrepo callback

Instantiate Sysrepo class and IETFHardware in the veliad daemon. We also
created a Factory class for initializing hardware state data readers
(e.g. specifically for czechlight clearfog boards).

There is also a possibility to split veliad daemon into two. First daemon
would handle the "health" part and second daemon would be just a simple
Sysrepo operational data callback for the IETF Hardware part. However,
we then discussed the future of the daemon and we'd like the outputs to
reflect the current IETF Hardware state (i.e., temperatures are going
crazy, show red light). However, if this was split among two daemons it
would require some IPC to be implemented.
Having everything in one daemon would simplify things and does not bring
much complexity to veliad.

Change-Id: Ifde2cd92eace447959c68684a879771aaf2e45ea
diff --git a/src/Factory.h b/src/Factory.h
new file mode 100644
index 0000000..521bc4f
--- /dev/null
+++ b/src/Factory.h
@@ -0,0 +1,16 @@
+#pragma once
+#include <memory>
+#include "health/State.h"
+#include "health/outputs/SlotWrapper.h"
+
+namespace velia::ietf_hardware {
+class IETFHardware;
+}
+
+namespace velia::ietf_hardware {
+std::shared_ptr<ietf_hardware::IETFHardware> create(const std::string& applianceName);
+}
+
+namespace velia::health {
+boost::signals2::SlotWrapper<void, health::State> createOutput(const std::string& applianceName);
+}