buffet: added url_utils

Added a bunch of utility functions to manipulate URLs. Stuff like
combining URLs, adding and extracting query parameters and so on.

BUG=None
TEST=New and old unit tests pass.

Change-Id: Ie8c76b611f9d985dc24aae22caf60cd22aac96a8
Reviewed-on: https://chromium-review.googlesource.com/195629
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/mime_utils.h b/buffet/mime_utils.h
index 31a7687..44f65c8 100644
--- a/buffet/mime_utils.h
+++ b/buffet/mime_utils.h
@@ -5,6 +5,7 @@
 #ifndef BUFFET_MIME_UTILS_H_
 #define BUFFET_MIME_UTILS_H_
 
+#include <base/basictypes.h>
 #include <string>
 #include <vector>
 
@@ -57,7 +58,7 @@
 // e.g. Combine("text", "plain", {{"charset", "utf-8"}}) will give:
 //      "text/plain; charset=utf-8"
 std::string Combine(const std::string& type, const std::string& subtype,
-                    const Parameters& parameters = {});
+                    const Parameters& parameters = {}) WARN_UNUSED_RESULT;
 
 // Splits a MIME string into type and subtype.
 // "text/plain;charset=utf-8" => ("text", "plain")
@@ -83,13 +84,13 @@
 
 // Removes parameters from a MIME string
 // "text/plain;charset=utf-8" => "text/plain"
-std::string RemoveParameters(const std::string& mime_string);
+std::string RemoveParameters(const std::string& mime_string) WARN_UNUSED_RESULT;
 
 // Appends a parameter to a MIME string.
 // "text/plain" => "text/plain; charset=utf-8"
 std::string AppendParameter(const std::string& mime_string,
                             const std::string& paramName,
-                            const std::string& paramValue);
+                            const std::string& paramValue) WARN_UNUSED_RESULT;
 
 // Returns the value of a parameter on a MIME string (empty string if missing).
 // ("text/plain;charset=utf-8","charset") => "utf-8"