regulators: Create DBusSensors class

Create the DBusSensors class.  This is a concrete implementation of the
Sensors abstract base class.  This class manages all the voltage
regulator sensors in the system.

Also add a lastUpdateTime data member to the DBusSensor class.  This
data member is set whenever the sensor is updated.  This enables the
DBusSensors class to detect sensors that were not updated during the
current monitoring cycle.

Sensors that were not updated during the current monitoring cycle are
deleted.  These sensors were likely produced by a hardware device that
was removed or replaced with a different version.

Tested:
* Ran through entire monitoring cycle multiple times
* Tested that lastUpdateTime is set correctly when a sensor is modified
  * Sensor value updated
  * Sensor disabled
  * Sensor put in error state
* Tested where new sensor was created
* Tested where existing sensor was updated
* Tested where all sensors disabled
* Tested where all sensors for a rail put in error state
* Tested where sensors removed due to not being updated this cycle
* Tested where D-Bus exception occurs when trying to create a sensor
* See complete test plan at
  https://gist.github.com/smccarney/69efb813c0005571aee687f67e489278

Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: Ib1fc399f100188cc048ac3ab5892117b74f844e9
diff --git a/phosphor-regulators/src/dbus_sensor.cpp b/phosphor-regulators/src/dbus_sensor.cpp
index 1fd4bf6..9717a12 100644
--- a/phosphor-regulators/src/dbus_sensor.cpp
+++ b/phosphor-regulators/src/dbus_sensor.cpp
@@ -106,6 +106,9 @@
 
     // Now emit signal that object has been created
     dbusObject->emit_object_added();
+
+    // Set the last update time
+    setLastUpdateTime();
 }
 
 void DBusSensor::disable()
@@ -115,6 +118,9 @@
 
     // Set the sensor to unavailable since it is disabled
     dbusObject->available(false);
+
+    // Set the last update time
+    setLastUpdateTime();
 }
 
 void DBusSensor::setToErrorState()
@@ -124,6 +130,9 @@
 
     // Set the sensor to non-functional since it could not be read
     dbusObject->functional(false);
+
+    // Set the last update time
+    setLastUpdateTime();
 }
 
 void DBusSensor::setValue(double value)
@@ -139,6 +148,9 @@
 
     // Set the sensor to available since it is not disabled
     dbusObject->available(true);
+
+    // Set the last update time
+    setLastUpdateTime();
 }
 
 std::vector<AssocationTuple>