First step at OpenSSL client socket implementation.

This is early in-progress implementation, no cert handling supported. So only available under a build-time flag. (GYP_DEFINES="'use_openssl=1'")

Adds a new build dependency for system OpenSSL libraries, and a new USE_OPENSSL define. Eventually this will disable USE_NSS but for now the two coexist.

BUG=none
TEST=build with use_openssl=1. Goto some https:// pages.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60936 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc
index 5fd06bf..d0793cb 100644
--- a/net/socket/client_socket_factory.cc
+++ b/net/socket/client_socket_factory.cc
@@ -9,6 +9,8 @@
 #include "net/socket/client_socket_handle.h"
 #if defined(OS_WIN)
 #include "net/socket/ssl_client_socket_win.h"
+#elif defined(USE_OPENSSL)
+#include "net/socket/ssl_client_socket_openssl.h"
 #elif defined(USE_NSS)
 #include "net/socket/ssl_client_socket_nss.h"
 #elif defined(OS_MACOSX)
@@ -27,6 +29,8 @@
     const SSLConfig& ssl_config) {
 #if defined(OS_WIN)
   return new SSLClientSocketWin(transport_socket, hostname, ssl_config);
+#elif defined(USE_OPENSSL)
+  return new SSLClientSocketOpenSSL(transport_socket, hostname, ssl_config);
 #elif defined(USE_NSS)
   return new SSLClientSocketNSS(transport_socket, hostname, ssl_config);
 #elif defined(OS_MACOSX)