Added recover() call for panics in Run()

This PR fixes two things:

1) If `Command.Run()` panics, we timed out before. Now we receive an error: `Recovered from panic: <panic-msg>`
2) If `Run()` returned `nil, nil`, we timed out. Now we receive `nil, nil` correctly.