Add unit-tests for GitRepo().merge() when it raises a NothingToMergeError exception
Handle lookup_reference() so that we can find local as well as remote branches
Make GitRepo().merge() return the id of the last commit on the branch

This identifier can be either the last commit from the merged branch if
the merge was fast-forward, or the merge commit if the merge was not
fast-forward but had no conflicts
Drop the use of the branch_name in the tests as it is no longer needed
Make sure that the hash of the commit and the hash of the merge commit differ
Add unit-tests for a fast-forward GitRepo().merge()