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/hlua_fcn.c b/src/hlua_fcn.c
index cebce22..5721445 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -26,7 +26,7 @@
 #include <types/proxy.h>
 #include <types/stats.h>
 
-#include <proto/proto_http.h>
+#include <proto/h1.h>
 #include <proto/proxy.h>
 #include <proto/server.h>
 #include <proto/stats.h>