Factoring the JSThread a bit more, allowing conditionals to compile.

(under both threading models)
Generalizing ifB for B thread, as well as A.
if/then/else passes tests.