BUG/MEDIUM: freq_ctr/threads: use the global_now_ms variable

In commit a1ecbca0a ("BUG/MINOR: freq_ctr/threads: make use of the last
updated global time"), for period-based counters, the millisecond part
of the global_now variable was used as the date for the new period. But
it's wrong, it only works with sub-second periods as it wraps every
second, and for other periods the counters never rotate anymore.

Let's make use of the newly introduced global_now_ms variable instead,
which contains the global monotonic time expressed in milliseconds.

This patch needs to be backported wherever the patch above is backported.
It depends on previous commit "MINOR: time: also provide a global,
monotonic global_now_ms timer".
diff --git a/include/haproxy/freq_ctr.h b/include/haproxy/freq_ctr.h
index d5cea41..b1db43e 100644
--- a/include/haproxy/freq_ctr.h
+++ b/include/haproxy/freq_ctr.h
@@ -88,7 +88,7 @@
 
 	curr_tick = ctr->curr_tick;
 	do {
-		now_ms_tmp = (uint32_t)global_now / 1000;
+		now_ms_tmp = global_now_ms;
 		if (now_ms_tmp - curr_tick < period)
 			return _HA_ATOMIC_ADD(&ctr->curr_ctr, inc);
 
diff --git a/src/freq_ctr.c b/src/freq_ctr.c
index 8fd0c90..42fbc1c 100644
--- a/src/freq_ctr.c
+++ b/src/freq_ctr.c
@@ -206,7 +206,7 @@
 			break;
 	};
 
-	remain = curr_tick + period - (uint32_t)global_now / 1000;
+	remain = curr_tick + period - global_now_ms;
 	if (unlikely((int)remain < 0)) {
 		/* We're past the first period, check if we can still report a
 		 * part of last period or if we're too far away.
@@ -253,7 +253,7 @@
 			break;
 	};
 
-	remain = curr_tick + period - (uint32_t)global_now / 1000;
+	remain = curr_tick + period - global_now_ms;
 	if (likely((int)remain < 0)) {
 		/* We're past the first period, check if we can still report a
 		 * part of last period or if we're too far away.