gf: add `max_varargs` field to jl_method_t (#49320)
* gf: add `max_varargs` field to jl_method_t
This field is currently always configured to use the existing heuristic,
which is based on specializing to the max # of args appearing in other
methods for the same function.
This makes progress on #49172. It leaves for later:
1. Go back and change the places we manually tweak `max_args` to set
`max_varargs` on the relevant method(s) instead.
2. Re-visit the original heuristic, to see if it can be better defined
without "spooky action at a distance" based on other method defs.
* Initialize purity bits
* gf: re-factor `get_max_varargs` to separate function
* Update src/gf.c
* Revert "Update src/gf.c"
This reverts commit a12c4f92c60ec3ca912df98864fb42ba708712c7.
---------
Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>
Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>