userspace: improve dynamic object allocation

We now have a low-level function z_dynamic_object_create()
which is not a system call and is used for installing
kernel objects that are not supported by k_object_alloc().

Checking for valid object type enumeration values moved
completely to the implementation function.

A few debug messages and comments were improved.

Futexes and sys_mutexes are now properly excluded from
dynamic generation.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
diff --git a/scripts/gen_kobject_list.py b/scripts/gen_kobject_list.py
index 01574b0..f404efc 100755
--- a/scripts/gen_kobject_list.py
+++ b/scripts/gen_kobject_list.py
@@ -79,7 +79,8 @@
 #    the object to be located in user-accessible memory.
 #
 #  - The third items is a boolean indicating whether this item can be
-#    dynamically allocated with k_object_alloc()
+#    dynamically allocated with k_object_alloc(). Keep this in sync with
+#    the switch statement in z_impl_k_object_alloc().
 #
 # Key names in all caps do not correspond to a specific data type but instead
 # indicate that objects of its type are of a family of compatible data