BUG/MEDIUM: config: count memory limits on 64 bits, not 32

It was accidently discovered that limiting haproxy to 5000 MB leads to
an effective limit of 904 MB. This is because the computation for the
size limit is performed by multiplying rlimit_memmax by 1048576, and
doing so causes the operation to be performed on an int instead of a
long or long long. Just switch to 1048576ULL as is done at other places
to fix this.

This bug affects all supported versions, the backport is desired, though
it rarely affects users since few people apply memory limits.
(cherry picked from commit f2dd5e4159bd055030cce6c6f4fe7f8988a74e2c)
(cherry picked from commit 7b4848cc3838f1fb32f3c91ce29f1a4525603613)
diff --git a/src/haproxy.c b/src/haproxy.c
index 125f082..b94252d 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1370,7 +1370,7 @@
 
 	if (global.rlimit_memmax) {
 		limit.rlim_cur = limit.rlim_max =
-			global.rlimit_memmax * 1048576 / global.nbproc;
+			global.rlimit_memmax * 1048576ULL / global.nbproc;
 #ifdef RLIMIT_AS
 		if (setrlimit(RLIMIT_AS, &limit) == -1) {
 			Warning("[%s.main()] Cannot fix MEM limit to %d megs.\n",