Mark old APIs officially deprecated

Marked the old state/commanddef APIs deprecated. Had to fix a couple
of issues on libweave side where old APIs were still called.

Also added AddTraitDefsChangedCallback() so weaved can listen to trait
updates and publish them onto its own RPC.

BUG: 25917706
Change-Id: I1e50e25c5251c12162c9b63e066f54c8a8f63c50
Reviewed-on: https://weave-review.googlesource.com/1877
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/src/device_manager.cc b/src/device_manager.cc
index e99ca4d..cb575b8 100644
--- a/src/device_manager.cc
+++ b/src/device_manager.cc
@@ -105,6 +105,10 @@
   return component_manager_->GetTraits();
 }
 
+void DeviceManager::AddTraitDefsChangedCallback(const base::Closure& callback) {
+  component_manager_->AddTraitDefChangedCallback(callback);
+}
+
 bool DeviceManager::AddComponent(const std::string& name,
                                  const std::vector<std::string>& traits,
                                  ErrorPtr* error) {