remove abandoned outputs (mostly done)

This implements "remove abandoned outputs" (RAO) mostly as I'd intend.
Missing are commandline argument to control it, and a merge squash for less messy commit history.
I was thinking RAO could be default enabled, thus a command switch would disable it.

Please also see discussion in https://groups.google.com/forum/#!topic/ninja-build/zQa5-K8XJfE