Send all parser and lowering depwarns to the logging system (#25257)
Forward all frontend depwarn messages through to the julia logging
system for consistency of formatting and dispatch.
Notable changes:
* Depwarn messages go to the logging system, rather than STDERR
* Meta.parse() is given a `depwarn` keyword for convenience in
controlling deprecation warnings.
* Tests for all parser and lowering deprecation warnings
Detail:
* Ensure that syntax-deprecation, deprecation-message forwards to the logging
system. Split these into distinct functions for depwarns coming from the
parser vs lowering, as these extract line number information in a different
way.
* Include file and line number as metadata everywhere that the frontend knows
about it.
* Remove jl_parse_depwarn(), replace flisp *depwarn* / *deperror* with
simplified *depwarn-opt* handled in one place.
* Replace Base.syntax_deprecation_warnings() with Meta.parse(..., depwarn=false)
* Internal C functions jl_log() and jl_logf() for use when communicating log
messages from C code. These will need to be augmented with an async
jl_safe_log() or something similar when printing log messages from the
runtime internals.
Todo:
* Figure out a decent `id` for the syntax and lowering depwarn messages