repl: handle async error in repl

I think `repl` should handle any error thrown.
But now async errors are unhandled in `repl`. 

When async error thrown, process is exited with status `1`.

``` sh
$ node
> process.nextTick(function() { throw new Error(); });
> 
repl:1
process.nextTick(function() { throw new Error(); });
                                    ^
Error
    at repl:1:37
    at process._tickCallback (node.js:386:13)
    at process._makeCallback (node.js:304:15)
```

I supported async error handling.