fix logging: log_set_category_filter() for internal DL* logging cats

In log_set_category_filter(), passing a negative index lead to memory
corruption. Particularly dangerous since the internal logging categories have
negative values.

Fix: apply map_subsys() to interpret negative values as internal logging
categories.

As a side effect, out-of-bounds logging categories will be mapped to DLGLOBAL
instead of being dropped.

Fix the expectations in logging_test to match the fixed bug.

While at it also guard against a NULL logging target.

Change-Id: Ib0725b22bc39498c6b3970a61eb3339cf56d19f1
diff --git a/tests/logging/logging_test.err b/tests/logging/logging_test.err
index 4527d83..17b3cad 100644
--- a/tests/logging/logging_test.err
+++ b/tests/logging/logging_test.err
@@ -6,3 +6,4 @@
 DLGLOBAL You should see this on DLGLOBAL (c)
 DLGLOBAL You should see this on DLGLOBAL (d)
 DLGLOBAL You should see this on DLGLOBAL (e)
+DLGLOBAL You should see this (DLGLOBAL on DEBUG)