Near the last of what is needed to enable basic multithreaded unit tests.

Rename test_executor to test_executor_multiple_threads.  In theory its
implementation is complete, but only the any thread id type is currently
unit tested, as that is all that is required for basic multithreaded
unit testing.

Refactoring of a part of framework_thread into a common base class that
is used by test_executor_multiple_threads.

Add test_part_executor and its unit tests.