pthread: `pthread_self()` without iteration

Observation:
* Currently in `pthread_self()` we iterate over all pthreads to find the
  `pthread_t` of the current thread.
* We don't want to bloat tcb_t with non-core stuff.

This PR uses the thread name field of the TCB to store the pointer to
the internal `pthread_thread_t`.

The benefit is a much faster, O(1), lockless lookup of the current
thread's pthread id. The drawback is a memory overhead of
`8 + 2 * sizeof (void *)` bytes per pthread.