AU: Don't use network on expensive connection types

Specifically:

- FlimFlam proxy class to query the current network status and find
out if it's expensive.
- Dbus Interface, so dbus can be mocked.
- Libcurl change to redirect the URL if we are on an expensive
connection. This may seem hacky, but the reason I avoided retooling
the whole class is that we may decide that some network usage is
okay on pricy connections. Perhaps it's okay to throttle. So, for
now this is a more minimal change.

BUG=chromium-os:2397
TEST=Unit tests, tested that flimflam proxy works on the device.

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

Change-Id: Ic4dcde1ca863bda890bc46a55c552e2b32d9433d
diff --git a/SConstruct b/SConstruct
index 1a73466..bd2a5d8 100644
--- a/SConstruct
+++ b/SConstruct
@@ -248,6 +248,7 @@
                    filesystem_copier_action.cc
                    filesystem_iterator.cc
                    file_writer.cc
+                   flimflam_proxy.cc
                    graph_utils.cc
                    gzip.cc
                    libcurl_http_fetcher.cc
@@ -288,6 +289,7 @@
                             file_writer_unittest.cc
                             filesystem_copier_action_unittest.cc
                             filesystem_iterator_unittest.cc
+                            flimflam_proxy_unittest.cc
                             graph_utils_unittest.cc
                             http_fetcher_unittest.cc
                             mock_http_fetcher.cc