internal/fetch: treat go.mod parse failure as BadModule

We were returning a 500 if we couldn't parse a module's go.mod file.
Instead return 490 (bad module).

This fixes github.com/AlCutter/crucible@v0.0.0-20240212163456-5ee0456321b3,
and others.

Change-Id: Ia65a4523c44e6baa65760cef07c434b32f80c678
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/565678
kokoro-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/internal/fetch/fetch.go b/internal/fetch/fetch.go
index 00068f5..6fff66b 100644
--- a/internal/fetch/fetch.go
+++ b/internal/fetch/fetch.go
@@ -168,7 +168,7 @@
 	}
 	if goModBytes != nil {
 		if err := processGoModFile(goModBytes, &lm.ModuleInfo); err != nil {
-			return lm, err
+			return lm, fmt.Errorf("%v: %w", err, derrors.BadModule)
 		}
 	}