Add new overload to register_property_r/rw

New overload doesn't take initial property values as parameter, instead
getter function result is used to set stored reference value. This
approach prevents situation when initial value can be different than
value returned by getter function which can cause signals to missbehave.

Tested:
- Changed examples register-property.cpp and get-all-properties.cpp to
  use new overload. Examples are working as before.

Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Change-Id: Ib7d870dd9fa0c178e17d16c565e6f05339bf3e60
diff --git a/example/register-property.cpp b/example/register-property.cpp
index 6537aca..339c0ce 100644
--- a/example/register-property.cpp
+++ b/example/register-property.cpp
@@ -23,13 +23,12 @@
         demo_ = objServer_.add_unique_interface(
             demoObjectPath, demoInterfaceName,
             [this](sdbusplus::asio::dbus_interface& demo) {
-                demo.register_property_r(
-                    propertyGrettingName, std::string(),
-                    sdbusplus::vtable::property_::const_,
+                demo.register_property_r<std::string>(
+                    propertyGrettingName, sdbusplus::vtable::property_::const_,
                     [this](const auto&) { return greetings_; });
 
-                demo.register_property_rw(
-                    propertyGoodbyesName, std::string(),
+                demo.register_property_rw<std::string>(
+                    propertyGoodbyesName,
                     sdbusplus::vtable::property_::emits_change,
                     [this](const auto& newPropertyValue, const auto&) {
                         goodbyes_ = newPropertyValue;