Require LLVM codegen when EvalJitLLVM >= 3

Summary: This will help ensure people don't accidentally regress the llvm
backend by introducing punts in code we already support.

Reviewed By: @jasone

Differential Revision: D1673489

Signature: t1:1673489:1415737138:2ea17521b6d3c917b92dd149102e5c693b7068d9
Add support for syncpoints and exceptions in the llvm backend

Summary: Both are fairly straightforward and mostly involve parsing information
out of the data sections emitted by LLVM. As far as I can tell, LLVM just emits
the exception tables into memory we give it and doesn't actually register any
of the exception information with the runtime. This means we can allocate all
data sections it asks for with malloc and free them once we extract the
information we need, rather than leaking them in globalData.

Reviewed By: @maksfb

Differential Revision: D1678102