Make ErrPublishSameBranch a terminal error and don't retry
Created by: mrnugget
This fixes #15373 by making ErrPublishSameBranch a terminal error that causes the reconciler to not dequeue the changeset again.
It also adds the tiny helper function errcode.IsTerminal
(that mirrors
other functions in there) and changes the repos.ChangesetNotFoundError
to also be a terminal error.