Implement Report persistency

Now Report properties are stored in non-volatile memory. It allows
to restore Report after system restart. Persistency of a report is
controlled by Persistency property in Report interface.

Tested:
 - Passed unit tests
 - Verified that report is stored in /var/lib/telemetry dir
 - Verified that report is restored from storage after telemetry
   service start

Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Change-Id: Iccfe21603eecffc4e174a4403f699b03de320db9
diff --git a/src/utils/tstring.hpp b/src/utils/tstring.hpp
new file mode 100644
index 0000000..7fcddb3
--- /dev/null
+++ b/src/utils/tstring.hpp
@@ -0,0 +1,36 @@
+#pragma once
+
+#include <array>
+#include <string>
+
+namespace utils
+{
+namespace literals
+{
+
+constexpr char id[] = "id";
+constexpr char sensorPaths[] = "sensorPaths";
+constexpr char operationType[] = "operationType";
+constexpr char metricMetadata[] = "metricMetadata";
+
+} // namespace literals
+
+template <const char* const V>
+struct Label
+{
+    static std::string str()
+    {
+        return V;
+    }
+};
+
+namespace tstring
+{
+
+using Id = utils::Label<utils::literals::id>;
+using SensorPaths = utils::Label<utils::literals::sensorPaths>;
+using OperationType = utils::Label<utils::literals::operationType>;
+using MetricMetadata = utils::Label<utils::literals::metricMetadata>;
+
+} // namespace tstring
+} // namespace utils