Since ninja 1.8.0[0] and samurai 0.2[1], output mtime is always
recorded after a job succeeds, and outputs are considered dirty if
the recorded mtime is older than any input. This means that even
if a command partially writes its output then fails (for example,
if run with stdout redirected to a file), it will still get re-run
during the next build.
This means that outputs no longer have to be written atomically
(i.e. renamed into place) in order to ensure a correct build, and
we can drop the idiom `command >$out.tmp && mv $out.tmp $out`.
[0] 04d886b110
[1] 799bc5a471
Since we are now using Lua to generate ninja files, use of rc in build scripts
seems unnecessary and adds an additional bootstrap dependency. None of them are
too fancy, so just port to POSIX sh instead.