AU multi-range fetcher requests properly closed ranges when their length
is known.

* HttpFetcher allows to set the length of data to be fetched.
  LibcurlHttpFetcher uses this value in applying the appropriate libcurl
  option (CURLOPT_RANGE).  MultiHttpFetcher sets the desired payload
  length in the underlying fetcher accordingly.

* Improved functionality of test_http_server: (a) correctly parses
  closed range intervals; (b) generalized response header generation;
  (c) unified and generalized get handling for both stable and flaky
  cases.

* Small scale refactoring, improved logging and readability.

BUG=chromium-os:24666
TEST=unit tests

Change-Id: I1727710ca747088c67a68305f355da683b07b6a3
Reviewed-on: https://gerrit.chromium.org/gerrit/13594
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Commit-Ready: Gilad Arnold <garnold@chromium.org>
diff --git a/http_common.h b/http_common.h
index ecd90e1..807ee7d 100644
--- a/http_common.h
+++ b/http_common.h
@@ -32,6 +32,7 @@
   kHttpResponseForbidden           = 403,
   kHttpResponseNotFound            = 404,
   kHttpResponseRequestTimeout      = 408,
+  kHttpResponseReqRangeNotSat      = 416,
   kHttpResponseInternalServerError = 500,
   kHttpResponseNotImplemented      = 501,
   kHttpResponseServiceUnavailable  = 503,