Implement `cabal check` for consistent .cabal naming (#4592)
Hackage requires the .cabal file to be named consistently with the package name,
but `cabal check` didn't detect this yet.
Example output:
$ cabal check
The following errors will cause portability problems on other environments:
* The filename ./doo.cabal does not match package name (expected: foobar.cabal)
Hackage would reject this package.
Note: this new check is implicitly/accidentally tested by an existing (unrelated)
test in `cabal-testsuite`.