Revert of Removing HTTPS and SOCKS proxy server code. (patchset #2 id:20001 of https://codereview.webrtc.org/2731673002/ )

Also needed to revert these CLs, which removed code used by the
code being un-removed:
https://codereview.webrtc.org/2745523004
https://codereview.webrtc.org/2754033003
https://codereview.webrtc.org/2758943002

Reason for revert:
This code is still being used by native application developers, so we should send a PSA announcing the deprecation and suggest an alternative before removing it.

Original issue's description:
> Removing HTTPS and SOCKS proxy server code.
>
> This isn't used any more so there's no point in maintaining it.
>
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2731673002
> Cr-Commit-Position: refs/heads/master@{#17016}
> Committed: https://chromium.googlesource.com/external/webrtc/+/a1991c517598fda9c9c0cf8876886e3968436ff9

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTRY=true
BUG=None

Review-Url: https://codereview.webrtc.org/2766063005
Cr-Commit-Position: refs/heads/master@{#17369}
diff --git a/webrtc/base/proxyinfo.h b/webrtc/base/proxyinfo.h
index cd5c3875..2251b13 100644
--- a/webrtc/base/proxyinfo.h
+++ b/webrtc/base/proxyinfo.h
@@ -11,15 +11,31 @@
 #ifndef WEBRTC_BASE_PROXYINFO_H__
 #define WEBRTC_BASE_PROXYINFO_H__
 
+#include <string>
+#include "webrtc/base/socketaddress.h"
+#include "webrtc/base/cryptstring.h"
+
 namespace rtc {
 
-// TODO(deadbeef): Remove this; it's not used any more but it's referenced in
-// some places, including chromium.
 enum ProxyType {
   PROXY_NONE,
+  PROXY_HTTPS,
+  PROXY_SOCKS5,
+  PROXY_UNKNOWN
 };
+const char * ProxyToString(ProxyType proxy);
 
 struct ProxyInfo {
+  ProxyType type;
+  SocketAddress address;
+  std::string autoconfig_url;
+  bool autodetect;
+  std::string bypass_list;
+  std::string username;
+  CryptString password;
+
+  ProxyInfo();
+  ~ProxyInfo();
 };
 
 } // namespace rtc