Refactor metadata returned by Readings property

Reading metadata is now JSON containg SensorDbusPath and SensorRedfishUri.
It is returned only if JSON metadata was provided during Report creation,
otherwise old behavior is maintained.

Additionally, json.hpp was removed as LabeledTupple is now used for
serialization and deserialization of metric and reading metadata.

Testing done:
- Unit test is passing as metric is returning proper metadata.
- Redfish get on redfish/v1/TelemetryService/MetricReports is containing
  MetricDefinition property, which utilizes SensorDbusPath metadata..
  Done on custom version of bmcweb.

Change-Id: I1b2cc4440d03e0fe45151b630f4e439839ed8589
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
diff --git a/tests/src/test_metric.cpp b/tests/src/test_metric.cpp
index 9006962..6c68513 100644
--- a/tests/src/test_metric.cpp
+++ b/tests/src/test_metric.cpp
@@ -71,15 +71,22 @@
 
 TEST_F(TestMetric, parsesSensorMetadata)
 {
+    using ReadingMetadata =
+        utils::LabeledTuple<std::tuple<std::string, std::string>,
+                            utils::tstring::SensorDbusPath,
+                            utils::tstring::SensorRedfishUri>;
+
     nlohmann::json metadata;
     metadata["MetricProperties"] = {"sensor1", "sensor2"};
 
     sensorMocks = makeSensorMocks(2);
     sut = makeSut(params.metadata(metadata.dump()));
 
-    EXPECT_THAT(sut->getReadings(),
-                ElementsAre(MetricValue{"id", "sensor1", 0., 0u},
-                            MetricValue{"id", "sensor2", 0., 0u}));
+    EXPECT_THAT(
+        sut->getReadings(),
+        ElementsAre(
+            MetricValue{"id", ReadingMetadata("", "sensor1").dump(), 0., 0u},
+            MetricValue{"id", ReadingMetadata("", "sensor2").dump(), 0., 0u}));
 }
 
 TEST_F(TestMetric, parsesSensorMetadataWhenMoreMetadataThanSensors)