Store per-thread RPC FDs on the ELF side (in mldr)
RPC FDs need to be accessible in libkernel even after libpthread trashes
the thread structure, so we either have to roll our own TLS (yuck)
or defer to elfcalls.
The weird thing is that I actually don't see where libpthread invalidates
the thread structure before calling bsdthread_terminate, but I was
intermittently getting segfaults in bsdthread_terminate when trying to
read the RPC FD. Probably a race condition (maybe with joining threads);
either way, this fixes that.
Also, we now guard the RPC FDs using the guard table introduced in the previous commit.