Allow removing private data in chrome://net-export.

This introduces a new LogLevel, LOG_STRIP_PRIVATE_DATA, which callbacks within
the network stack check to decide whether or not to report redacted data.
Unfortunately, this involves duplicating the net-internals implementation, but
that implementation isn't easily reusable given chrome://net-exports'
constraints.

Plumb this state through net-export and adjust the UI and state machine
accordingly. Add various tests.

This also moves HttpAuth::ChallengeTokenizer to HttpUtil::ChallengeTokenizer as
some of the redaction logic reuses the parser. This avoids giving everything a
dependency on HttpAuth.

BUG=349502

Review URL: https://codereview.chromium.org/182523006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257645 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/http/http_auth_challenge_tokenizer.h b/net/http/http_auth_challenge_tokenizer.h
index 3c93d25..a73f1920 100644
--- a/net/http/http_auth_challenge_tokenizer.h
+++ b/net/http/http_auth_challenge_tokenizer.h
@@ -37,6 +37,8 @@
     return std::string(scheme_begin_, scheme_end_);
   }
 
+  std::string::const_iterator params_begin() const { return params_begin_; }
+  std::string::const_iterator params_end() const { return params_end_; }
   HttpUtil::NameValuePairsIterator param_pairs() const;
   std::string base64_param() const;