In Android O and later, if an invalid pthread_t is passed to pthread_join,
it calls fatal().
https://github.com/aosp-mirror/platform_bionic/blob/
ed16b344e75f422fb36fbfd91fb30de339475880/libc/bionic/pthread_internal.cpp#L116-L128
This patch addresses it by:
1. Always memset(0) on USB_communications_thread at the end of
CloseProxmark.
2. On Bionic, only call pthread_join on USB_communications_thread if it is
not equal to 0.