reduce the typing effort needed for matching SOURCE/HEADERS

Git-Dch:Ignore
options/flags can be command specific

accepting flags which aren't supported by a command can be quiet
confusing especially if the name suggests that it could be supported.

While this adds the infrastructure this isn't completed yet, so many
commands still accept options that they shouldn't.

The direct effect in reality is that 'apt' is supporting the same commandline
flags as its apt-* counterparts would out-of-the-box now.
fix includes to be in style with the usual pattern

Any *.cc file has to #include <config.h> first and if translations are
needed #include <apti18n.h> at the last position.

Git-Dch: Ignore
fix output redirection order

First redirect output to a file, then redirect other outputs to this
output, not the other way around as this will not work.

Git-Dch: Ignore
do not try to chown if not run as root

If this code is run as non-root we are in a special situation (e.g. in
our testcases) where it is obvious that we can't enforce user/group on
any file, so skip this code altogether instead of bugging users with
an error message.

The file is still handled with chmod, so all the security we can enforce
is still enforced of course.

Git-Dch: Ignore
use our _error stack to generate openpty errors

While we don't want these error messages on our usual stack, we can use
our usual infrastructure to generate an error message with all the usual
bells like errno and strerror attached.

Git-Dch: Ignore
put down the wanted posters, the search is over

Closes: #134156, #271810
Merge remote-tracking branch 'donkult/feature/apt-binary' into feature/apt-binary

Conflicts:
	apt-private/makefile
	apt-private/private-install.h