In CI, test with Go 1.23 and 1.24,
and upgrade the Hermit-managed Go and golangci-lint to latest versions.
The new golangci-lint had a number of warnings and minor issues
that were either fixed or opted-out of.
Per the [Go Release Policy][1], upstream supports
only the two most recent major releases of Go.
For example, with Go 1.21 available, only 1.21 and 1.20 are supported.
Many projects adopt a similar support policy
to strike a balance between new features and backwards support.
[1]: https://go.dev/doc/devel/release#policy
If the project has the same policy,
it makes sense to test against both versions of Go.
This change adds a test matrix to CI,
testing against both Go 1.20 and 1.21,
on both Windows and Linux.
* ci: Test on Windows too
Adds a Windows test run to CI.
Go setup relies on GHA for this
because Hermit doesn't yet support Windows.
* fix(mapper_windows_test): assert.NotNil => assert.True
assert.NotNil does not exist.
* filecontent mapper: Handle error from directory
If we couldn't read because the source is a directory,
override the original error message.
* fix(test): Handle platform-specific "file not found" messages