man: Add libseat manpages
meson: fix manpage generation for cross builds

We want to use the scdoc of the host system not the target system, so
pass the `native: true` parameter to meson.
client: Only unlink if on the idle list
ci: ASan smoketest on FreeBSD
ci: ASan all build steps on arch
Move list removal to seat/client destroy
client: Do not leak idle clients on exit
poller: Remember to remove sources from list
server: Remember to remove seat from list
test: Add test_run and test_assert macros

test_run and test_assert replaces regular assert with better logging
which include the currently running test name. The tests can now also be
built without DEBUG.
Remove unused list implementation
poller: Convert to linked_list
linked_list: linked_list_take should concat lists
server: Convert seat list to linked_list
poller: Make event sources opaque
seatd: Explicit cast -1 to unsigned gid_t

Silences a warning on some architectures.
seatd: Slight error handling cleanup
seatd: Remove unused device_closed msg body
linked_list: Implement linked_list_take
seat: Destroy all clients on teardown
protocol: Add note to remove device_closed msg

The content of this message is unused, so it should be converted to a
content-less message.