Overloading f(x) call syntax with `call` generic

Note the relation to
https://github.com/JuliaLang/julia/issues/14919
as fixing that would allow

(f::Any)(a,b,c) = ...

to be used like what call(f, a, b, c) = .... is intended to do, except this might not intercept all calls, but could participate in normal dispatch, so that foo(a,b,c)=... would be more specific. Hm, but then defining (f::Any)(a::Placeholder) and foo(a::Any) would lead to an ambiguity when trying to call foo(::Placeholder). So that issue is related, but maybe not the solution here.