p2p: Add P2PManager class

This class makes it simple to use p2p both as a client and a server.

For now, this feature is hidden behind a flag. The intent is that this
flag can be toggled with the crosh command - for now, only the reading
of the flag is implemented - see chromium:260441 for the remaining
work.

BUG=chromium:260426,chromium:260441
TEST=New unit tests + unit tests pass
Change-Id: If1879f4535c8e7e3af7c6d378e6df4054264b794
Reviewed-on: https://chromium-review.googlesource.com/64824
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: David Zeuthen <zeuthen@chromium.org>
Tested-by: David Zeuthen <zeuthen@chromium.org>
diff --git a/SConstruct b/SConstruct
index dc4dd6c..215d4b1 100644
--- a/SConstruct
+++ b/SConstruct
@@ -275,6 +275,7 @@
                    omaha_request_action.cc
                    omaha_request_params.cc
                    omaha_response_handler_action.cc
+                   p2p_manager.cc
                    payload_signer.cc
                    payload_state.cc
                    postinstall_runner_action.cc
@@ -324,6 +325,7 @@
                             omaha_request_action_unittest.cc
                             omaha_request_params_unittest.cc
                             omaha_response_handler_action_unittest.cc
+                            p2p_manager_unittest.cc
                             payload_signer_unittest.cc
                             payload_state_unittest.cc
                             postinstall_runner_action_unittest.cc