Processor: Don't use fate MAKE_IF_NEEDED for pseudo targets

We use fate MAKE again, but handle the two cases where the
discrimination is relevant by checking whether it is a pseudo target
explicitly:
* In _PrepareTargetRecursively() when deciding the fate depending on the
  fate of the dependency.
* In _SealTargetFateRecursively() when propagating whether the target is
  needed.

The decision whether a temporary target needs to be made should now be
more correct.
Processor::_PrintMakeTreeState(): Fix output
Processor::_SealTargetFateRecursively(): Avoid revisiting targets

... similarly to _PrepareTargetRecursively(). However, we do visit a
target again, if its state changes. That should deal with temporary
targets used by multiple parents.
testdata/make/UpdateTemporaryTarget: Add more test cases