Fix the lcoal / upstream changes calculations

Turns out I had the commands around the wrong way - it was reporting the
local changes as the remote changes and the remote changes as the local
changes.
If there are remote changes and no local changes, try to fast forward.

This will try to merge the remote branch into the local branch if there
are no local changes. This will perform a 'fast forward only' merge, so
there will be no merge conflicts and no merge commit.

If there are any local changes, then it is still up to the user to merge
themselves, which is the only sane way to handle that situation.