Experimental change in how A/B tests are built.

The original script uses llc to translate the .ll file, and the final
clang command links its .o file into the executable.

The new script has the clang command use the .ll file instead of the
.o file (so clang initiates its own run of llc on the .ll file).

For reasons I don't yet understand, this results in a different
compilation of this test_cast.cpp function:

  uint32_t castF64ToUi32(double a) { return (uint32_t) a; }

The two implementations differ in their results for undefined
behavior, i.e. when the result is too large to fit in an unsigned i32.

(Even though the results are undefined, there is value to having
Subzero replicate the undefined behavior in case programs are
inadvertently relying on the undefined behavior.)