Fix tag an existed tag name of a repository

replace #8303 
replace #8487 
When tag a image with a tag name which is existed in the repository,
docker should prompt it is conflicted and it will only worked when with
a -f option.But the docker doesn't work like that,it will just
replace the image whether you have a -f option or not.View the
code you can find that if an repoName is existed,it will never go
to check if 'force' option is set or not.
@jfrazelle  errorOut(err, t, fmt.Sprintf("%v %v", out, err)) is also used in tests TestTagUnprefixedRepoByName and TestTagUnprefixedRepoByID.
Maybe it is need a cleanup