Fix merge argument handling

The real `git merge` command does *not* use an optional second argument to specify the branch which will be modified, `HEAD` always determines that.  The implementation here should follow that to avoid giving people mistaken ideas about how to do merges.

The first commit here modifies commands in the demonstration portion of intro/3 to remove second arguments from `git merge` commands.  The second commit modifies the implementation of the `git merge` command so that it acts more like the real thing.