wqueue: Reject messges if queue is considered full

The write queue was always meant to not queue more than the
max_length messages but the implementation never rejected a
message.

Begin to log and enforce the queue size limit, add a testcase
to verify the code and initialize except_cb as part of a fix
for that new test case.

Real applications might now run into the queue limit and drop
messages where they just queued them before. It is unfortunate
but I still think it is good to implement the routine as it was
intended. We need to review osmo_wqueue_enqueue once more to
see that no msgb is leaked.

Change-Id: I1e6aef30f3e73d4bcf2967bc49f0783aa65395ae
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 77038bc..c01f4af 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -177,6 +177,12 @@
 AT_CHECK([$abs_top_builddir/tests/stats/stats_test], [0], [expout], [ignore])
 AT_CLEANUP
 
+AT_SETUP([write_queue])
+AT_KEYWORDS([write_queue])
+cat $abs_srcdir/write_queue/wqueue_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/write_queue/wqueue_test], [0], [expout], [ignore])
+AT_CLEANUP
+
 AT_SETUP([bssgp-fc])
 AT_KEYWORDS([bssgp-fc])
 cat $abs_srcdir/gb/bssgp_fc_tests.ok > expout