cmd/link: track offset instead of using seek
cmd/link: track offset instead of using seek

The Cpos function is used frequently (at least once per symbol) and
it is implemented with the seek syscall. Instead, track current
output offset and use it.

Building the godoc binary with DWARF, best of ten:

tip:  real 0m1.287s user 0m1.573s
this: real 0m1.208s user 0m1.555s

Change-Id: I068148695cd6b4d32cd145db25e59e6f6bae6945
Reviewed-on: https://go-review.googlesource.com/20055
Run-TryBot: David Crawshaw <a2f0bf29257797dd66800b4fbb9945c3e216c004@golang.org>
TryBot-Result: Gobot Gobot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>

vanloswang/go,binarycrusader/go,binarycrusader/go,suncycheng/go,binarycrusader/go,vanloswang/go,vanloswang/go,ganboing/go-esx,suncycheng/go,binarycrusader/go,cloudflare/go,josharian/go,codestation/go,goodlang/good,Samurais/go,Samurais/go,CAFxX/go,ganboing/go-esx,miolini/go,goodlang/good,akutz/go,derekmarcotte/go,ImJasonH/go,miolini/go,theif519/go,linux-on-ibm-z/go,Samurais/go,nawawi/go,miolini/go,CAFxX/go,codestation/go,ImJasonH/go,CAFxX/go,vanloswang/go,ImJasonH/go,akutz/go,mwhudson/go,momchil-velikov/go,theif519/go,goodlang/good,golang/go,nawawi/go,nawawi/go,vsekhar/elastic-go,josharian/go,suncycheng/go,akutz/go,derekmarcotte/go,suncycheng/go,mwhudson/go,golang/go,nawawi/go,Samurais/go,codestation/go,Cofyc/go,miolini/go,Cofyc/go,ganboing/go-esx,golang/go,suncycheng/go,golang/go,linux-on-ibm-z/go,mwhudson/go,Cofyc/go,josharian/go,cloudflare/go,nawawi/go,4ad/go,mwhudson/go,codestation/go,akutz/go,derekmarcotte/go,goodlang/good,momchil-velikov/go,josharian/go,cloudflare/go,CAFxX/go,derekmarcotte/go,polyverse-security/go,CAFxX/go,akutz/go,akutz/go,josharian/go,momchil-velikov/go,nawawi/go,miolini/go,theif519/go,goodlang/good,polyverse-security/go,polyverse-security/go,ImJasonH/go,miolini/go,4ad/go,golang/go,momchil-velikov/go,ganboing/go-esx,mwhudson/go,Samurais/go,Samurais/go,Samurais/go,codestation/go,vanloswang/go,vanloswang/go,binarycrusader/go,vsekhar/elastic-go,suncycheng/go,Samurais/go,vsekhar/elastic-go,cloudflare/go,goodlang/good,derekmarcotte/go,linux-on-ibm-z/go,polyverse-security/go,linux-on-ibm-z/go,4ad/go,ganboing/go-esx,Cofyc/go,Cofyc/go,theif519/go,4ad/go,akutz/go,vsekhar/elastic-go,theif519/go,Cofyc/go,theif519/go,ganboing/go-esx,polyverse-security/go,binarycrusader/go,cloudflare/go,linux-on-ibm-z/go,derekmarcotte/go,CAFxX/go,momchil-velikov/go,polyverse-security/go,vsekhar/elastic-go,akutz/go,mwhudson/go,golang/go,ganboing/go-esx,codestation/go,4ad/go,ImJasonH/go,ganboing/go-esx,codestation/go,josharian/go,nawawi/go,miolini/go,ImJasonH/go,polyverse-security/go,theif519/go,derekmarcotte/go,josharian/go,polyverse-security/go,suncycheng/go,vsekhar/elastic-go,mwhudson/go,4ad/go,CAFxX/go,momchil-velikov/go,golang/go,vsekhar/elastic-go,suncycheng/go,momchil-velikov/go,4ad/go,theif519/go,christopher-henderson/Go,Cofyc/go,Cofyc/go,miolini/go,goodlang/good,4ad/go,codestation/go,mwhudson/go,vsekhar/elastic-go,cloudflare/go,linux-on-ibm-z/go,nawawi/go,cloudflare/go,linux-on-ibm-z/go,golang/go,CAFxX/go,linux-on-ibm-z/go,josharian/go,derekmarcotte/go,vanloswang/go,momchil-velikov/go,ImJasonH/go,goodlang/good,cloudflare/go,vanloswang/go,ImJasonH/go,binarycrusader/go,binarycrusader/go