Config no multithreading (#625)

* Add DOCTEST_CONFIG_NO_ATOMICS

* Fix

* Fix cmake stuff and ambiguity issue

* No mutices when multithreading is disabled

* Add WASI platform

* Fix various warnings

* No `thread_local`s when multithreading is disabled

* Fix tests

* Add docs

* Fix docs

* Various fixes, simplifications and additional tests

* Small docs amendment

* Tiny style fix
diff --git a/examples/all_features/CMakeLists.txt b/examples/all_features/CMakeLists.txt
index 4d2fe1b..3d6b342 100644
--- a/examples/all_features/CMakeLists.txt
+++ b/examples/all_features/CMakeLists.txt
@@ -97,15 +97,11 @@
 doctest_add_test(NAME minimal         ${common_args} -m -sf=*test_cases_and_suites*) # minimal with summary
 doctest_add_test(NAME minimal_no_fail ${common_args} -m -sf=*no_failures.cpp) # minimal
 
-################################################################################
-## DOCTEST DISABLED - EXPRESSIONS STILL EVALUATE TO RETURN PROPER VALUES
-################################################################################
-
 add_executable(disabled_but_evaluated assert_returns_disabled.cpp assert_returns_disabled_evaluate.cpp)
 target_compile_definitions(disabled_but_evaluated PRIVATE DOCTEST_CONFIG_DISABLE)
 target_link_libraries(disabled_but_evaluated doctest ${CMAKE_THREAD_LIBS_INIT})
 
-doctest_add_test_impl(NAME disabled_but_evaluated COMMAND $<TARGET_FILE:disabled_but_evaluated>)
+doctest_add_test_impl(NO_OUTPUT NAME disabled_but_evaluated COMMAND $<TARGET_FILE:disabled_but_evaluated>)
 
 if(MSVC)
     target_compile_options(disabled_but_evaluated PRIVATE /wd4702) # unreachable code
@@ -119,14 +115,20 @@
 endif()
 
 ################################################################################
-## VARIATION OF THE BUILD WITH DOCTEST DISABLED - SHOULD STILL COMPILE
+## CONFIG TESTS - TESTS WITH VARIOUS CONFIGURATION OPTIONS
 ################################################################################
 
-add_executable(disabled ${files_all})
-target_compile_definitions(disabled PRIVATE DOCTEST_CONFIG_DISABLE)
-target_link_libraries(disabled doctest ${CMAKE_THREAD_LIBS_INIT})
+function(add_test_all_features test_name flags)
+    add_executable(${test_name} ${files_with_output})
+    target_compile_definitions(${test_name} PRIVATE ${flags})
+    target_link_libraries(${test_name} doctest ${CMAKE_THREAD_LIBS_INIT})
 
-doctest_add_test_impl(NAME disabled COMMAND $<TARGET_FILE:disabled>)
+    doctest_add_test_impl(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}> --no-skipped-summary --no-version -ob=name)
+endfunction()
+
+add_test_all_features(no_multithreading DOCTEST_CONFIG_NO_MULTITHREADING)
+add_test_all_features(no_multi_lane_atomics DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS)
+add_test_all_features(disabled DOCTEST_CONFIG_DISABLE)
 
 # TODO: think about fixing these in a different way! - see issue #61 or commit 6b61e8aa3818c5ea100cedc1bb48a60ea10df6e8
 if(MSVC)