cmds: clear diffs when the selection becomes empty

Detect the empty state and refresh the diff text and selection.
We originally used a separate event to track clicks, which made
the code harder to follow.

We now check for the empty state in when refreshing and empty
out the diff text when no selection or no changes exist.

Closes #194

Reported-by: Avinash-Bhat <nashpapa@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>