Implement svcreq in llvm backend

Summary: Fairly easy, with a bit of a hack to work around the fact that we
still use ret to invoke service requests.

Reviewed By: @jasone

Differential Revision: D1699108
Handle push/pop instructions in llvm backend

Summary: pushl was unused so it's been deleted. Of the others, only pushm was
used inside a normal tracelet, and only by LdRetAddr. I've replaced it with a
higher level instruction that's lowered to the corresponding pushm for x64
codegen. I also replaced ret with the higher-level retctrl, also lowered back
to ret for x64 codegen. This allows us to generate the same llir we were
before, but with one fewer awkward hack.

Reviewed By: @jasone

Differential Revision: D1699263
Raise psllq and psrlq to absdbl, support in llvm

Summary: We were only using these two instructions to clear the sign bit of a
double to take its absolute value. Use the llvm intrinsic in the llvm backend.

Reviewed By: @jasone

Differential Revision: D1702068
Don't use sbbl in cgIsScalarType

Summary: I replaced it with an instruction sequence that shouldn't be
meaningfully slower (or faster) but is much simpler to implement in the llvm
backend.

Reviewed By: @jasone

Differential Revision: D1702277