REORG: ssl: move ssl_sock_ctx and fix cross-dependencies issues

In order to move all SSL sample fetches in another file, moving the
ssl_sock_ctx definition in a .h file is required.

Unfortunately it became a cross dependencies hell to solve, because of
the struct wait_event field, so <types/connection.h> is needed which
created other problems.
diff --git a/include/proto/ssl_sock.h b/include/proto/ssl_sock.h
index a01e29e..32b7a33 100644
--- a/include/proto/ssl_sock.h
+++ b/include/proto/ssl_sock.h
@@ -28,6 +28,7 @@
 #include <types/connection.h>
 #include <types/listener.h>
 #include <types/proxy.h>
+#include <types/ssl_sock.h>
 #include <types/stream_interface.h>
 
 #include <proto/connection.h>
diff --git a/include/types/listener.h b/include/types/listener.h
index 4b71ddb..997a597 100644
--- a/include/types/listener.h
+++ b/include/types/listener.h
@@ -27,7 +27,6 @@
 
 #ifdef USE_OPENSSL
 #include <common/openssl-compat.h>
-#include <types/ssl_sock.h>
 #endif
 
 #include <common/config.h>
@@ -112,6 +111,12 @@
 #define BC_SSL_O_PREF_CLIE_CIPH 0x0200  /* prefer client ciphers */
 #endif
 
+struct tls_version_filter {
+	uint16_t flags;     /* ssl options */
+	uint8_t  min;      /* min TLS version */
+	uint8_t  max;      /* max TLS version */
+};
+
 /* ssl "bind" settings */
 struct ssl_bind_conf {
 #ifdef USE_OPENSSL
diff --git a/include/types/ssl_sock.h b/include/types/ssl_sock.h
index e6b092e..99c964d 100644
--- a/include/types/ssl_sock.h
+++ b/include/types/ssl_sock.h
@@ -27,6 +27,7 @@
 #include <ebmbtree.h>
 #include <eb64tree.h>
 
+#include <types/connection.h> /* struct wait_event */
 #include <types/ssl_ckch.h>
 #include <types/ssl_crtlist.h>
 
@@ -131,12 +132,6 @@
 	struct ebmb_node name;    /* node holding the servername value */
 };
 
-struct tls_version_filter {
-	uint16_t flags;     /* ssl options */
-	uint8_t  min;      /* min TLS version */
-	uint8_t  max;      /* max TLS version */
-};
-
 extern struct list tlskeys_reference;
 
 struct tls_sess_key_128 {
@@ -233,6 +228,20 @@
 	char ciphersuite[0];
 };
 
+struct ssl_sock_ctx {
+	struct connection *conn;
+	SSL *ssl;
+	BIO *bio;
+	const struct xprt_ops *xprt;
+	void *xprt_ctx;
+	struct wait_event wait_event;
+	struct wait_event *subs;
+	int xprt_st;                  /* transport layer state, initialized to zero */
+	struct buffer early_buf;      /* buffer to store the early data received */
+	int sent_early_data;          /* Amount of early data we sent so far */
+
+};
+
 struct global_ssl {
 	char *crt_base;             /* base directory path for certificates */
 	char *ca_base;              /* base directory path for CAs and CRLs */