make `ml_matches` return `nothing` when there are too many matches (#44478)
Continuation from <https://github.com/JuliaLang/julia/pull/44448#discussion_r820025006>.
Previously `ml_matches` (and its dependent utilities like `_methods_by_ftype`)
returned `false` for cases when there are too many matching method, but
its consumer like `findall(::Type, ::InternalMethodTable)` usually handles
such case as `missing`. This commit does a refactor so that they all use
the more consistent value `nothing` for representing that case.