Preserve original discrete trigger value

Currently, there are no 'real' discrete sensors, so discrete trigger is
working with numeric ones. Dbus api is using string as thresholdValue,
but internally service is converting it to double. This resulted in
side-effect of malformed value of Thresholds property, e.g., 90.0 being
represented as 90.000000. This change stores original value in order to
not confuse potential users.

Additionally, check was added to validate whole string of thesholdValue.
Now, it must consist only of numeric characters, values like '12.3FOO'
will be rejected on AddTrigger call.

Testing done:
- UTs added and are passing,
- dbus get-property on Thresholds confirms unchanged initial value.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Iec3514ac1479587e610f8da31ecf9ba6fc0bdb62
diff --git a/src/trigger_factory.cpp b/src/trigger_factory.cpp
index da5a64c..6c9ceb9 100644
--- a/src/trigger_factory.cpp
+++ b/src/trigger_factory.cpp
@@ -162,8 +162,7 @@
 
     thresholds.emplace_back(std::make_shared<DiscreteThreshold>(
         bus->get_io_context(), sensors, std::move(actions),
-        Milliseconds(dwellTime), std::stod(thresholdValue), thresholdName,
-        severity));
+        Milliseconds(dwellTime), thresholdValue, thresholdName, severity));
 }
 
 void TriggerFactory::makeNumericThreshold(