Implement defer, and fix a few issues with the recover() implementation

With this, we now pass the llgo test suite.