Placeholder for Python-based .sfd generator.
Added `.mk.$@.tmp` idiom for redirect-generated files.

Files generated by redirect are created/updated even if the generation process fails, so `make`, assuming success from the timestamp, won't try to build it again. Using this new idiom, a temporary file is used instead and then renamed to the actual target only if the commands before the rename have succeeded.

We make no special effort to clean up `.mk.$@.tmp` files; they are automatically removed upon a successful build of `$@`, and the `build` directory containing them is removed by `clean`.