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
Done. Also added the necessary changes for OpenCL and PTX backends.