handle nils safely in Printf. add some tests for erroneous formats. R=rsc CC=golang-dev https://golang.org/cl/201058