connection: split receive logic

This allows us to call the receive logic internally which is needed to
automatically receive a message in synchronous operation.
connection: let kdbus_conn_queue_insert() hand back the used offset

... so we can store the answer offset in case of synchronous operations.
kdbus.h, message: prepare for synchronous operations (ABI break)
connection: add syncronous message reply mechanism

Sending a message with (KDBUS_MSG_FLAGS_EXPECT_REPLY |
KDBUS_MSG_FLAGS_SYNC_REPLY) will result in the KDBUS_CMD_MSG_SEND ioctl
will block until the receiving connection has replied or the specified
timeout is hit.

When the round-trip succeeded, .offset_reply in the sender's message is
set to the offset where the reply can be found, and the message is
accepted and received automatically. The sender is still in charge of
freeing the message though.

This breaks with Greg's original matra that we followed elsewhere
in the design of kbus: "nothing blocks, ever". But hey, it an optional
feature after all :)
test: add test for sync message ping-pong
handle: fix potential mem leak when kdbus_conn_kmsg_send() fails
kdbus.h: document two new possible error values
test/test-kdbus-sync.c: kill unused variable
connection: only schedule timeout scan for async operation
properly drop references of endpoint and activator connection
kerneldoc: s/Returns/Return/, s/any value/negative errno/, move "Return:" to last line
connection: add comment about wait_event
connection: delay sending messages to monitor connections

Only supply messages to monitor connections in case
kdbus_conn_queue_insert() for the actual destination succeeded.
do not shortcut handle state with KDBUS_CMD_BYEBYE, it leaks the namespace ref
connection: delete timer on error
limit the number of buses and connections per user
increase hash tables for connections and names
connection: fix kernel doc comment
connection: assorted sync_reply fixes and cleanups
connection: pass back the full queue element from kdbus_conn_queue_insert

That way, we can fiddle with the contents of the queue entries in
more flexible ways.