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.
Speed up x86oid non-local exits.

In changeset dc386436 Nikodemus made WITH-ALIEN rebind *ALIEN-STACK*
to itself. This made some work of SAVE-/RESTORE-DYNAMIC-STATE redundant
so far as the special binding takes care of releasing aliens.
He even pointed out that aliens were no longer freed one at a time,
but didn't remove the extra mechanism, which incidentally seems not to
have worked correctly, as otherwise the bug which prompted the rebinding
approach couldn't have occurred.

Net of all previous related changes, the minimal example
  (lambda () (catch 'foo (funcall 'bar)) nil)
is 14 instructions shorter and 90 bytes less on x86-64.
Gabriel's CTAK benchmark runs 10% faster, maybe more.
Unify the algorithms for (CAS SYMBOL-VALUE) and SET on x86-64.