Buffet: Phase 1 of GCD device registration workflow

Implemented the basic device registration workflow in buffet daemon.

Updated buffet_client to perform/test device registration:

Check for device registration:
  buffet_client cr

Getting registered device information:
  buffet_client di

Begin registration (with all default values):
  buffet_client sr

Begin registration with custom parameters:
  buffet_client sr "service_url=http://localhost/buffet&device_kind=coffeePot"

Finalize registration:
  buffet_client fr 4/FsXprlpVsmPw6z7ro7aqU156Eh6V.0ktCYeVc3DwYEnp6UAPFm0GAey3PigI

BUG=chromium:363348
TEST=unit tests passed.

Change-Id: Id8a90b66fbdc366eaa9f62caa82a7cb0abc2e638
Reviewed-on: https://chromium-review.googlesource.com/195082
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/http_utils.cc b/buffet/http_utils.cc
index 7529796..8210221 100644
--- a/buffet/http_utils.cc
+++ b/buffet/http_utils.cc
@@ -16,13 +16,14 @@
 namespace chromeos {
 namespace http {
 
-std::unique_ptr<Response> Get(const std::string& url) {
-  Request request(url);
-  return request.GetResponse();
+std::unique_ptr<Response> Get(const std::string& url,
+                              const HeaderList& headers) {
+  return SendRequest(request_type::kGet, url, nullptr, 0, nullptr, headers);
 }
 
-std::string GetAsString(const std::string& url) {
-  auto resp = Get(url);
+std::string GetAsString(const std::string& url,
+                        const HeaderList& headers) {
+  auto resp = Get(url, headers);
   return resp ? resp->GetDataAsString() : std::string();
 }