fix: build essential Go tools before updating GOBIN
Created by: creachadair
PR #8912 pointed GOBIN to a temp directory, so that the target binaries can be compared to the installed set to avoid unnecessary restarts. However, that change applies to ALL the Go tools built by this script, including dlv and the Zoekt indexer binaries that are not updated in this way.
That means in a clean checkout (or in any other case where .bin has been purged), the .bin directory never receives the zoekt binaries at all, and the service cannot start up.
The key change here is to move the update of GOBIN until after those core tools are built and installed. Then the target commands are built with GOBIN pointed to a temp directory, as before.
Along the way, I also cleaned up some of the formatting in the file (tabs to spaces, fixed indentation). There is more that could be done.