Upgrade to Go 1.17 and golangci-lint to 1.64, and fix the linting issues
that were found.
Also upgrade CI workflow actions to latest versions, and setup a test
matrix for relevant Go versions.
BREAKING CHANGE: Minimum Go version changed from 1.15 to 1.17.
pkg.go.dev parses "RFC 1035, section 2.3.1" style text and links it to
the relevant place. So there's no need to also include a full URL for
documentation purposes.