Add spinlock and tests for it.

3 jobs from master in 1 minute 47 seconds (queued for 1 second)
Status Job ID Name Coverage
  Build
passed #2677
build_cmake

00:28

 
  Test
passed #2678
run_tests

00:29

 
  Sanitizer
failed #2679
run_thread_sanitizer

00:49

 
    #13 main /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/extern/catch2/catch.hpp:14554 (tests+0x000000405e03)

SUMMARY: ThreadSanitizer: data race /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/test/base_tests.cpp:50 operator()
==================
===============================================================================
All tests passed (6 assertions in 5 test cases)

ThreadSanitizer: reported 1 warnings
ERROR: Job failed: exit code 1