shared: introduce _cleanup_set_free_free_
install: use automatic cleanup in find_symlinks_fd()
install: automatic cleanup using local cleanup functions
Move generic specifier functions to shared

No functional change. This makes it possible to use them in install.c.
core: fix %U when no User= used

When the username was not explicitly specified, both %U and %u would
print the username. Make %U always print UID.
install: allow specifiers in WantedBy/RequiredBy/Alias

This allows one templated unit to refer to another templated unit
at installation time.

Examples:

> grep WantedBy ~/.config/systemd/user/mpop@.timer
WantedBy=services@%i.target

> srv disable mpop@iit.timer
rm '/home/alxchk/.config/systemd/user/services@iit.target.wants/mpop@iit.timer'
> srv enable mpop@iit.timer
ln -s '/home/alxchk/.config/systemd/user/mpop@.timer' '/home/alxchk/.config/systemd/user/services@iit.target.wants/mpop@iit.timer'

Based-on-patch-by: Oleksii Shevchuk <alxchk@gmail.com>
install: allow %u an and %U specifiers in WantedBy/RequiredBy/Alias
tests: add test for install_full_printf()
tests: compress unit name tests and add more asserts
tests: add test for unit name printing
test: some trivial fixes to test scripts

- fix typo
- use compiled systemd-nspawn
- drop --capability=... from systemd-nspawn invocation, is is the default now
- simplify sudo make invocations