Makefile: Add support for symbol versioning (ON by default) (#49012)
This enables symbol versioning by default, with the version string
`JL_LIBJULIA_1.10` (the version suffix is the SOMAJOR in general). This
will configure the linker to assign the specified version string to all
Julia-exported symbols.
As part of this change, the SOMAJOR has also been changed to be
MAJOR.MINOR instead of just MAJOR. This is required to allow multiple
minor releases of libjulia to live side-by-side in the same process.
`SYMBOL_VERSION_SUFFIX` is provided to allow appending an additional
unique "salt" to SOMAJOR, which can be helpful for creating template
binaries that will be "version-stamped" after distribution.
Correctly compute `LLVM_SHLIB_SYMBOL_VERSION` using
`llvm-config`, so USE_SYSTEM_LLVM should continue to work.