Exit with the same status as git merge.

When git-imerging a branch with no new commits the return
behavior should be the same as git merge. The exit status should
be 0 and the exit message should be sent to stdout.
Let NothingToDoError construct its own error message.

If needed, we could in the future provide access to `src_tip` and
`dst_tip` as NothingToDoError class attributes.
Merge branch 'exit-code'

Make subcommands "merge" and "rebase" behave like the corresponding
git commands when there is nothing to do.