Implements TLS descriptor relocations in JITLink ELF/AARCH64 backend and support the relevant runtime functions in ELFNixPlatform.
Unlike traditional TLS model, TLS descriptor model requires linker to return the "offset" from thread pointer via relocaiton not the actual pointer to thread local variable. There is no public libc api for adding new allocations to TLS block dynamically which thread pointer points to. So, we can't support this model with straightforward approach. Codegen emits "mrs <dest>" instruction to set dest regisster to frame pointer. When accessing TLVs in aarch64 linux with PIC flag, TLS descriptor model is used by default and llvm codegen always emit this instruction pattern with relevant TLS relocation entries. In this patch, it simply swaps mrs instruction with "mov xzr" which zeroes the dest register. This way tp + offset become just offset, we can return the actual address of thread local variable as offset.