IDL compiler: [CallWith] for setters

Simple one, main change is now we need a function for the setter_expression,
analogous to the one for getter_expression.
(We'll add more cases to this in future.)

Docs:
https://sites.google.com/a/chromium.org/dev/blink/webidl/blink-idl-extended-attributes#TOC-CallWith-m-a-

BUG=239771
NOTRY=true

Review URL: https://codereview.chromium.org/29153007

git-svn-id: svn://svn.chromium.org/blink/trunk@160000 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Rework SpinLock to use a more suitable atomic primitive.

Atomic test-and-set is faster than atomic inc/dec (the latter are typically
full memory barriers,
see http://gcc.gnu.org/onlinedocs/gcc-4.3.5/gcc/Atomic-Builtins.html). The
SpinLock torture test is perhaps twice as fast, although variance on the test
is ridiculous so do not weight it so heavily.

Bonus: rework OS(WIN) to COMPILER(MSVC) so that we get the best intrinsics
possible if we ever experimented with Clang Windows builds.

Bonus: unify Android with POSIX. Android simply uses GCC intrinsics anyway.

BUG=307600

Review URL: https://codereview.chromium.org/29973002

git-svn-id: svn://svn.chromium.org/blink/trunk@160001 bbb929c8-8fbe-4397-9dbb-9b2b20218538