Expose akaros_syscall_sync through libc (XCC)

This function takes a syscall struct as a parameter and performs a
single synchyronous syscall using that struct.  If the syscall is not
complete upon exiting the kernel the currently running thread will be
handed off to the 2LS and blocked there.
Uthreads do not require TLS

By default, individual uthreads will not have their own TLS; they will piggyback
off of their vcore's TLS.  The uthread library can handle individual
uthreads having TLS.

Note that thread0 (from glibc) will have TLS, no matter what.   FYI,
thread0's TLS gets used at exit, and needs to be the same as when the
program started (C++ programs, fluidanimate at least).

2LSs choose whether or not their specific uthreads have TLS.  To be
somewhat compatible, pthreads will have them by default.  If you're app
doesn't need TLS, call pthread_need_tls(FALSE), preferably before call
pthread_create().

For reference, this lowers the latency of the context switch (via the
untuned pthread_test 100 100000 1) from ~360ns -> 194ns.  That includes
3 mcs locks in the 2LS, which we could minimize.
Removes unnecessary TLS var from vcore.c

Not sure why that was in TLS.  If I had a good reason, then I should
have left a note...