Revert "Removed most rubinius:bug calls from JIT."

This reverts commit 2b12035ffe555896309ec83cfe53d5ec17f081d4.
Reworked handling JIT failures.

The JIT should be completely transparent semantically. No JIT failure
should change the operation of the program. This approach of using
exceptions to abort during a JIT compile and handling the exception
at the top of the JIT process should be used uniformly.
Added spawn specs for STD{IN, OUT, ERR}.
Fixed spawn/exec to not close STD{IN, OUT, ERR}.