Fix some test*im operand sizes

Summary: We were using cmpqim and testlim on the same memory address, first to
check a pointer for null and then to inspect something in its bottom half. This
is only ok on little-endian machines, and the LLVM optimizer will do funky
things to endianness-dependent code. I shuffled things around so we always emit
a properly-sized test instruction in code-gen-x64.cpp, and vasm-x64.cpp will
emit a smaller instruction when appropriate. I know the instruction-shrinking
logic in vasm-x64.cpp could be smarter than it is; I decided to keep it exactly
as smart as it was before for simplicity.

Reviewed By: @jasone

Differential Revision: D1737884

Signature: t1:1737884:1418431658:638373b0d36ab6e731513d355c9306c93c121154
Add timers for llvm codegen

Summary: This will give us a rough idea of how much time we spend in the
various parts of the llvm backend. I considered adding a mode to Timer that
aborts if we punt by throwing an exception, but it looks like it's not possible
to get that 100% correct until std::uncaught_exceptions() in C++17.

Reviewed By: @jasone

Differential Revision: D1739445

Signature: t1:1739445:1418674406:e61081656e29da64c2ddabd98477cf0eab099bb7