Revise juce_MathsFunctions.h to use C++20 bit ops

C++20 has some new bit operations that can simplify the code in that header. There’s a feature test macro: __cpp_lib_bitops, so these can be added without breaking code that doesn’t use c++20.

popcount can be used in countNumberOfBits, and countl_zero can be used in findHighestSetBit (for uint32, result would be 32 - countl_zero(n);).

There probably are lots of other math routines that can be simplified with C++20 changes, and with the feature test macros those should also be relatively easy to implement.

I’m putting this message here instead of a pull request in github per instructions on github, but can produce pull request if you wish.

The difficulty here is that whilst the code guarded by the feature macro will be simpler, we’ll end up with duplicated functionality. The overall complexity in the header will increase.

If the new C++20 ops are substantially faster than the existing code then we’ll add them in, but otherwise the tradeoff doesn’t seem worth it.