Fix discarding replies.

Discarding replies ended up in a loop that would terminate when the
delete path tried to access state that was previously removed. This
happened because we were resetting the ReviewReplyEditor's state when
the ReviewReply's 'destroy' signal was emitted, but we really wanted to
listen to 'destroyed'. Listening to this fixes the loop and reply
deletion.