refactor: don't litter the source tree with backup turdlets.
refactor: don't litter the source tree with backup turdlets.

Also, restore from backup if the replacement file cannot be written.

LGTM=sameer
R=sameer
CC=golang-codereviews
https://golang.org/cl/155660043

runcom/tools,syreclabs/go-tools,sshetty10/tools,maddyonline/tools,syreclabs/go-tools,springning/tools,sshetty10/tools,springning/tools,4ad/tools,nicot/tools,jdhenke/tools,argandas/tools,golang/tools,4ad/tools,jdhenke/tools,sshetty10/tools,golang/tools,matryer/tools,argandas/tools,golang/tools,cmars/tools,dmitris/tools,cw2018/tools,cmars/tools,golang/tools,syreclabs/go-tools,dmitris/tools,maddyonline/tools,argandas/tools,syreclabs/go-tools,sshetty10/tools,cw2018/tools,matryer/tools,runcom/tools,cmars/tools,maddyonline/tools,golang/tools,magiccao/tools,magiccao/tools,jdhenke/tools,cmars/tools,josharian/tools,josharian/tools,glasser/golang-tools,dmitris/tools,josharian/tools,runcom/tools,magiccao/tools,jdhenke/tools,glasser/golang-tools,maddyonline/tools,cw2018/tools,josharian/tools,nicot/tools,matryer/tools,cw2018/tools,glasser/golang-tools,matryer/tools,dmitris/tools,syreclabs/go-tools,magiccao/tools,syreclabs/go-tools,springning/tools,springning/tools,nicot/tools,4ad/tools,runcom/tools,glasser/golang-tools,argandas/tools,nicot/tools