Older Catch2 versions don't work with Apple Silicon. Updating to Catch2 version 3 fixes the problem, but it's a big change --- catch2 is no longer just a single header file, it's a regular library.
This PR removes the old version of Catch2 adds Catch2 3.4.0 as a submodule and builds it as a static library with ExternalProject. It updates the #include directives, namespace changes, and function calls as necessary in the unit tests.
Older Catch2 versions don't work with Apple Silicon. Updating to Catch2 version 3 fixes the problem, but it's a big change --- catch2 is no longer just a single header file, it's a regular library.
This PR removes the old version of Catch2 adds Catch2 3.4.0 as a submodule and builds it as a static library with ExternalProject. It updates the #include directives, namespace changes, and function calls as necessary in the unit tests.