REORG: split "protocols" files into protocol and listener

It was becoming confusing to have protocols and listeners in the same
files, split them.
diff --git a/include/types/connection.h b/include/types/connection.h
index 711abf0..8a1b8ee 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -27,8 +27,10 @@
 
 #include <common/config.h>
 
+#include <types/listener.h>
+#include <types/protocol.h>
+
 /* referenced below */
-struct protocol;
 struct connection;
 struct buffer;
 struct pipe;
@@ -36,7 +38,6 @@
 struct proxy;
 struct si_applet;
 struct task;
-struct listener;
 
 /* Polling flags that are manipulated by I/O callbacks and handshake callbacks
  * indicate what they expect from a file descriptor at each layer. For each