AU: Proxy Resolver classes

A collection of classes (abstract ProxyResolver interface and two
concrete implementations). The abstraction is one that should suit us
moving forward: a string URL is provided and a collection of proxy
servers is returned. One implementation always returns [no
proxy]. Another returns [manual settings from chrome, if applicable,
..., no proxy].

A future concrete implementation will consult Chrome via DBus with the
URL in question, however this is delayed until Chrome exposes such an
API.

As a result of this API missing from Chrome, this CL only resolves
proxies for a URL with manually input proxy settings.

Future CLs will integrate this into the rest of the update system.

BUG=3167
TEST=unit tests, (with future CLs) working proxy support on device

Review URL: http://codereview.chromium.org/5151005

Change-Id: If9dc6d09da681bca6f6ae74c896ba946ab81cb4d
diff --git a/SConstruct b/SConstruct
index f772882..97cc6e3 100644
--- a/SConstruct
+++ b/SConstruct
@@ -236,6 +236,7 @@
                    buffered_file_writer.cc
                    bzip.cc
                    bzip_extent_writer.cc
+                   chrome_proxy_resolver.cc
                    cycle_breaker.cc
                    dbus_service.cc
                    decompressing_file_writer.cc
@@ -261,6 +262,7 @@
                    payload_signer.cc
                    postinstall_runner_action.cc
                    prefs.cc
+                   proxy_resolver.cc
                    simple_key_value_store.cc
                    split_file_writer.cc
                    subprocess.cc
@@ -278,6 +280,7 @@
                             action_processor_unittest.cc
                             buffered_file_writer_unittest.cc
                             bzip_extent_writer_unittest.cc
+                            chrome_proxy_resolver_unittest.cc
                             cycle_breaker_unittest.cc
                             decompressing_file_writer_unittest.cc
                             delta_diff_generator_unittest.cc