Versioning User-Agent Headers in Go

In order to get an idea of usage of our client library, it's common for client libraries to define a custom User-Agent header to identify what versions of the library are making network requests. While the header can be defined as a constant string with the version getting changed on each release, this is error-prone because it requires manual changes to keep the version up-to-date. For example,…