systemctl: fix and refactor wait_for_jobs

wait_for_jobs was ignoring the errors from the jobs stored in r.
It would only ever return whether the call to sd_bus_remove_filter
went ok. This patch changes it to return the first job related error
encountered. If a job related error is found, then the result of the
call to sd_bus_remove_filter is ignored.

wait_for_jobs was a bit hard to read so I split it up to avoid
the goto and deep nesting.
test: cgroup-util - do not fail if cpu controller is not available
Fix memory leak in stdout journal streams

Just as 'identifier' is strdup-ed and freed, we need to do the same for
unit_id.
bootchart: remove dead assignment
Trim TODO
kernel-install: add -h/--help
Help output spring cleaning

Use [brackets] only for optional elements.
Use <optional> in XML sources.
systemctl: simplify argument parsing
systemctl: fix 'is-enabled'
man: document 'is-enabled' output

https://bugzilla.redhat.com/show_bug.cgi?id=953077
extend CODING_STYLE document a bit
bus: demarshal gvariant
bus: rearrange bus-message.c function order to keep read and write calls together
bus: rely on explicit eof check instead of checking when mapping payload

This allows us to drop quite a bit of code.
bus: suppress creating empty parts in messages
bus: handler empty messages correctly when using gvariant marshalling
bus: properly deserialize gvariant fixed size arrays
bus: fix signature handling when exiting container
bus: fix rewinding in gvariant messages
bus: only accept gvariant native endian messages via kdbus