REORG: http: move the HTTP semantics definitions to http.h/http.c

It's a bit painful to have to deal with HTTP semantics for each protocol
version (H1 and H2), and working on the version-agnostic code further
emphasizes the problem.

This patch creates http.h and http.c which are agnostic to the version
in use, and which borrow a few parts from proto_http and from h1. For
example the once thought h1-specific h1_char_classes array is in fact
dictated by RFC7231 and is used to parse HTTP headers. A few changes
were made to a few files which were including proto_http.h while they
only needed http.h.

Certain string definitions pre-dated the introduction of indirect
strings (ist) so some were used to simplify the definition of the known
HTTP methods. The current lookup code saves 2 kB of a heavily used table
and is faster than the previous table based lookup (typ. 14 ns vs 16
before).
diff --git a/src/log.c b/src/log.c
index 3bd2285..11e75ec 100644
--- a/src/log.c
+++ b/src/log.c
@@ -36,7 +36,7 @@
 #include <proto/applet.h>
 #include <proto/cli.h>
 #include <proto/frontend.h>
-#include <proto/proto_http.h>
+#include <proto/h1.h>
 #include <proto/log.h>
 #include <proto/sample.h>
 #include <proto/stream.h>