Get test/quick passing under llvm

Summary: With this diff, all of test/quick passes with the llvm backend. We're
still punting on a few things (most notably bindcall), but this at least means
the stuff we do support is reasonably correct.

- Pass argument types to Intrinsic::getDeclaration for rounding, sqrt.
- Enable sse4.1 in ExecutionEngine.
- Allocate .rodata sections in mcg->globaData() so they stick around past
  codegen time (llvm likes to put double constants in .rodata).
- Make sure values from vcall's simdArgs tuple are passed as doubles.
- Change loadb to loadtqb, meaning load truncated quad to byte. This is
  necessary because we store Bools as 8 bytes but load them as 1 byte: if we
  actually emit llir with 8 byte stores and 1 byte loads to/from the same
  address the alias analysis pass gets upset.
- Make sure the m_data field of a TypedValue arguments to C++ helpers is always
  passed in a GP register, even when it's a double.

Reviewed By: @jasone

Differential Revision: D1738259

Signature: t1:1738259:1418671189:2a01f24f991302923660b6085678bbc2029e54f7