BUG/MEDIUM: proxy: use thread-safe stream killing on hard-stop

When setting hard-stop-after, hard_stop() is called at the end to kill
last pending streams. Unfortunately there's no locking there while
walking over the streams list nor when shutting them down, so it's
very likely that some old processes have been crashing or gone wild
due to this. Let's use a thread_isolate() call for this as we don't
have much other choice (and it happens once in the process' life,
that's OK).

This must be backported to 1.8.

(cherry picked from commit 92b887e20a995323d3fbd42d2be035733cefd6ba)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/proxy.c b/src/proxy.c
index e469c76..b29bd96 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1213,9 +1213,12 @@
 		}
 		p = p->next;
 	}
+
+	thread_isolate();
 	list_for_each_entry(s, &streams, list) {
 		stream_shutdown(s, SF_ERR_KILLED);
 	}
+	thread_release();
 
 	killed = 1;
 	t->expire = tick_add(now_ms, MS_TO_TICKS(1000));