Usage:
AIThreadID foo(AIThreadID::none);
...
llassert(is_single_threaded(foo));
...
llassert(is_single_threaded(foo));
...
etc
The first call to is_single_threaded(foo) remembers the thread,
and after that it is enforced that any call from anywhere that uses foo
is done by the same thread.
If AIThreadID::none is omitted then the thread is enforced to the thread
that creates the AIThreadID.