Speed up manipulation of special variables on threaded x86-64.
This replaces branching instructions with conditional moves.
Additionally, tests for unbound/no-tls-value markers use :dword
operands, which should be invisible to user code. Putting random data
in the high 32 bits of those markers expecting them to be immediate
objects distinct from markers is just wrong.
Gabriel's STAK test runs at least 5% faster.
Note: %compare-and-swap-symbol-value isn't materially changed,
it just looks like it because of the new macros. It could get the
same treatment as the SET vop possibly.