MEDIUM: dynbuf: remove last usages of b_alloc_margin()

The function's purpose used to be to fail a buffer allocation if that
allocation wouldn't result in leaving some buffers available. Thus,
some allocations could succeed and others fail for the sole purpose of
trying to provide 2 buffers at once to process_stream(). But things
have changed a lot with 1.7 breaking the promise that process_stream()
would always succeed with only two buffers, and later the thread-local
pool caches that keep certain buffers available that are not accounted
for in the global pool so that local allocators cannot guess anything
from the number of currently available pools.

Let's just replace all last uses of b_alloc_margin() with b_alloc() once
for all.
diff --git a/src/check.c b/src/check.c
index c32e940..96276c1 100644
--- a/src/check.c
+++ b/src/check.c
@@ -994,12 +994,12 @@
 {
 	struct check *check = target;
 
-	if ((check->state & CHK_ST_IN_ALLOC) && b_alloc_margin(&check->bi, 0)) {
+	if ((check->state & CHK_ST_IN_ALLOC) && b_alloc(&check->bi)) {
 		check->state &= ~CHK_ST_IN_ALLOC;
 		tasklet_wakeup(check->wait_list.tasklet);
 		return 1;
 	}
-	if ((check->state & CHK_ST_OUT_ALLOC) && b_alloc_margin(&check->bo, 0)) {
+	if ((check->state & CHK_ST_OUT_ALLOC) && b_alloc(&check->bo)) {
 		check->state &= ~CHK_ST_OUT_ALLOC;
 		tasklet_wakeup(check->wait_list.tasklet);
 		return 1;
@@ -1016,7 +1016,7 @@
 	struct buffer *buf = NULL;
 
 	if (likely(!LIST_ADDED(&check->buf_wait.list)) &&
-	    unlikely((buf = b_alloc_margin(bptr, 0)) == NULL)) {
+	    unlikely((buf = b_alloc(bptr)) == NULL)) {
 		check->buf_wait.target = check;
 		check->buf_wait.wakeup_cb = check_buf_available;
 		LIST_ADDQ(&ti->buffer_wq, &check->buf_wait.list);