Go 1.18 had some breaking changes on source level meaning we cannot build on older Go versions anymore.
The improvements in Go 1.18 (e.g. `break` and `continue`) were to good to pass on.
Note that you don't need Go (or Go 1.18) to run a pre-built binary.
Updates #9677
Go 1.17 now lazy-loads dependencies when `go.mod` is version `go17`. This does not work for us for new projects started with `hugo mod init`.
Before this commit, starting a project with Go 1.17 with `hugo mod init` and then start adding dependencies with transitive dependenies to `config.toml` would treat the transitive dependencies as new, and you would potentially get a too recent version of those.
Note that this does not effect existing projects, where all dependencies are already recorded in `go.mod`.
Fixes#8930