Kernel.raise should be a macro to avoid messing up the stack trace

Closes #1723