Add the "Phony Output" concept

These are like Make's .PHONY rules in that they can have a command, but
are always considered dirty, and will re-run on every build.

Adds `-w usesphonyoutputs=yes` to control whether the output directory
check happens at all, as before this is used, Make .PHONY rules can be
real rules that can trigger the output directory check. This will also
be useful to control the next warnings about outputs existing and being
too old.

Also replicate the checks from Kati where non-phony outputs nodes cannot
depend on phony output nodes (otherwise they'd always rebuild).

Test: ninja_tests (run by build-prebuilts.sh)
Change-Id: Iea561f775434e1b062aedfbf7014bcdbaa66a5db
13 files changed