In rare cases, our interceptors for dispatch_async (and friends) are
not enough to reliably observe GCD worker thread creation. When we
later find a bug (via interceptors) on a thread that hasn't been
registered we crash during report generation because we never set the
current thread context (via SetCurrentThread()).
This change adds a "pthread introspection hook", to guarantee ASan
initialization for GCD worker threads. This code is similiar to what we
are already doing for TSan, so I tried to factor out the common code.