Cleanup tool finding functions

There was a duplicate definition of `gocode`, and `gofmt` didn't correctly search `$PATH`, and might as well use the helper function `gopathBinOrPathItem`.
Here's one of them, the other should look basically the same, but I don't have access to it at the moment:

    GOARCH="amd64"
    GOBIN="/home/jcp/.go/bin"
    GOCHAR="6"
    GOEXE=""
    GOHOSTARCH="amd64"
    GOHOSTOS="linux"
    GOOS="linux"
    GOPATH="/home/jcp/.go"
    GORACE=""
    GOROOT="/usr/lib/go"
    GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
    CC="gcc"
    GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
    CXX="g++"
    CGO_ENABLED="1"

And here are the contents of the directories of interest:

    ~$ ls /usr/lib/go/pkg/tool/linux_amd64/                        
      6a  6c  6g  6l  addr2line  cgo  dist  fix  nm  objdump  pack  pprof  vet  yacc
    ~$ ls ~/.go/bin                                                
      cover  gocode  godef  godoc  goimports  golint  goreturns  hugo  oracle  vet
    ~$ ls /usr/bin/ | grep \^go 
      go
      gobject-query
      gofmt
      google-chrome-stable
      gorbd
      gozilla
    ~$ ls /usr/lib/go                                              
      doc  include  lib  pkg  src