Add error handling for app.listen()

Also take the async behavior of app.listen() into
account.