Remove raciness from vcore_test

It would occasionally lock up due to a logic error.
Slightly refactor DTLS freeing
On reentry, clear top of stack to placate profiler
Add WFL comments and slot reservation API call
Bypass PLT for calls to local functions

By default, no symbols are externally visible from this library anymore.
This allows us to bypass the PLT and call functions directly for internal
calls.  In order to expose a symbol, you can mark its definition with
EXPORT_SYMBOL, e.g.:

int EXPORT_SYMBOL foo() { return 0; }

However, local calls to foo will still use the PLT, so only use this
technique if foo is only called from outside of this library.  If foo is
invoked both internally and externally, use INTERNAL() and EXPORT_ALIAS()
in the header and implementation, respectively, like so:

header:

int foo();

implementation:

int foo() { return 0; }
EXPORT_ALIAS(INTERNAL(foo), foo)

In the binary, there will be two symbols for foo: one called plt_bypass_foo,
which has internal linkage and so will appear at local call sites and as
the definition of the function; and foo itself, which has external linkage.