buffet: Add parsing of command instances from JSON

CommandInstance class can be created from a JSON object
with proper command and parameter value validation against
command definition schema.

BUG=chromium:396713
TEST=USE=buffet P2_TEST_FILTER="buffet::*" FEATURES=test emerge-link platform2

Change-Id: Iba4c807225552f6a9d8b33a0aa1fc451e75753a4
Reviewed-on: https://chromium-review.googlesource.com/211338
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/commands/command_queue.h b/buffet/commands/command_queue.h
index 5d650a0..3f269f1 100644
--- a/buffet/commands/command_queue.h
+++ b/buffet/commands/command_queue.h
@@ -26,8 +26,10 @@
   size_t GetCount() const { return map_.size(); }
 
   // Adds a new command to the queue. Each command in the queue has a unique
-  // ID that identifies that command instance. The ID string of the added
-  // command is returned by this method.
+  // ID that identifies that command instance in this queue. This identifier
+  // has no relation to any GCD command identifiers or anything else. Just a
+  // unique key in this queue class.
+  // The ID string of the added command is returned by this method.
   std::string Add(std::unique_ptr<const CommandInstance> instance);
 
   // Removes a command identified by |id| from the queue. Returns a unique