All rake tasks MUST revert to their original CWD before ending or calling other tasks

I was seeing like three different failures revealed by this! Pretty
awesome. So new rule: Don't pollute the global state! Dir.chdir and the
equivalent FileUtils.cd may ONLY be called in their block forms, so that
the CWD reverts when the block is done. Much easier.
Switch to a captive copy of git-new-workdir for updating external sources

Because it doesn't ship with git-core, so no one has it. This script
came from the contrib dir of the git source.