core llvm: switch to Check monad for to llvm conversion
core llvm: refactor code gen to use real exceptions instead of just calling error when we hit a problem