AbstractInterpreter: Refactor `abstract_call` to be more overload-friendly (#50355)
The existing signature of `abstract_call` can lead to ambiguous method
errors when it is overloaded for an external `AbstractInterpreter`.
This commit mitigates this issue by narrowing the argument type of
`max_methods` from `::Union{Int,Nothing}` to `::Int`.
Additionally, it introduces `abstract_call_unknown`, providing a hook
for static code analyzers like JET.jl to report unknown calls.