format: fix a thinko: multi-acquiring of single object

Solution: use a wrapper, sufficient in the current usecases (i.e., just
delegating __eq__ and __hash__ methods), that holds the reference to the
original.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
command: not quiet + with outputs files -> print their names

Primarily intended as a message suitable for CLI usage.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
command+format: move magic FDs handling command->format

...where it is probably a more natural fit.
Also, enable it for input file specs.

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
format: allow for interpolations within filenames

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
format: fix excessive purification of interpolations dict

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
command: start making global filter ctxt useful for interpolation

The aim is to be able to specify, e.g., "{<filter>.in.<something>}"
that would refer to some property? of the input object pertaining to
given filter -- presumably the output files would refer to the input
files, implicitly solving the time-dependency (thanks to real filter
application ordering being already automagically solved through
"backtracking"/postponing).  The property in question would likely
be some kind of hash that would semi-reliably pair output(s) to input
(goodbye overwrites loosing this pairing info).

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
command_context: attribute access first tries wrapped dict access

...this is so as to make started interpolation-in-file-specs a bit more
aesthetic (dot-access instead of index access that is less neat in that
string formatting context)

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
format: "hash that would semi-reliably pair output(s) to input"

Also see the security-related comment.  It's taken seriously (as
author's knowledge permits).

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
commands: make outputs partly reflect input(s) by default

Useful anytime one is lazy to redefine the defaults, but want to
semi-unique output files for different inputs (e.g., when processing
plenty of configs like when testing clufter's logic itself).

Signed-off-by: Jan Pokorný <jpokorny@redhat.com>