buffet: Add DBusCommandDispacher and hook it up to CommandQueue

Added DBusCommandDispacher class that maintains DBusCommandProxy object
for each instance of CommandInstance class added to the CommandQueue.

As soon as a command instance is removed from the queue, D-Bus command
dispatcher removes the corresponding command proxy object from D-Bus.

BUG=chromium:374864
TEST=FEATURES=test emerge-link buffet

Change-Id: Ib7ce7370bd3ee471e22f02b8546675021ff063d7
Reviewed-on: https://chromium-review.googlesource.com/211642
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index f245e5e..0a10afe 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -18,6 +18,7 @@
         'commands/command_instance.cc',
         'commands/command_manager.cc',
         'commands/command_queue.cc',
+        'commands/dbus_command_dispatcher.cc',
         'commands/dbus_command_proxy.cc',
         'commands/object_schema.cc',
         'commands/prop_constraints.cc',
@@ -76,6 +77,7 @@
             'commands/command_instance_unittest.cc',
             'commands/command_manager_unittest.cc',
             'commands/command_queue_unittest.cc',
+            'commands/dbus_command_dispatcher_unittest.cc',
             'commands/dbus_command_proxy_unittest.cc',
             'commands/object_schema_unittest.cc',
             'commands/schema_utils_unittest.cc',