Fix race condition with sigalrm.

Summary: Took way too long to debug this... the issue was that if an
exception (like Server_initializing) got thrown before the alarm went
off, the alarm would not get unset. So at some point the signal handler
gets called and raises Server_busy.

Reviewed By: @jwatzman

Differential Revision: D1702848

Signature: t1:1702848:1416962236:1fc138cb08b254da69fb44912ac8149872929a5e
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
use IMPLEMENT_RESOURCE_ALLOCATION for resources

Summary: It's confusing to use IMPLEMENT_OBJECT_ALLOCATION for resources,
and we might want to change how object/resources are swept
independently.

Reviewed By: @markw65

Differential Revision: D1703478

Signature: t1:1703478:1416964853:82feff283db1c7eaf3b5af7e4a76478074c98a51