Trunc

Please refer to the commit messages for more details; this turned out to be more tricky than I expected.

Two general points:
- I think this should be enough to enable the test in correctness/math.cpp for round on Windows, but I have no way to test this.
- Do I have to do anything else to guarantee clean vectorization of trunc or does LLVM take care of this?

ptal
floor, etc vectorize cleanly because there's special code for them in src/runtime/x86_sse41.ll

Should probably add equivalent code, or change this comment.