names.c: simplify buffer size logic

Assume that clients send KDBUS_NAME_INFO_ITEM_NAME as their first
appended item, so we don't actually have to walk the items.

Also, do a put_user on the struct's total size, so the client knows
which extra size to assume. After all, that depends on
CONFIG_AUDITSYSCALL and CONFIG_SECURITY.
match: allow filtering KDBUS_MSG_ID_{ADD,REMOVE} for specific IDs
attach NAMES and CREDS only when asked for
attach TIMESTAMP only when asked for, always add NAMES
names: allow listing all names, including unique names

Introduce a flags field to struct kdbus_cmd_names, and
KDBUS_NAME_LIST_UNIQUE_NAMES to let the kernel know to not only dump
well-known-names but unique names as well.

That allows userspace to get a full list of all connected clients.

Not that user space implementation will need to adopt this change.
kdbus.h: use kernel BIT() helper