Rework how in-repo object names are handled. In particular, there is - or at least should be - only one place in the source where any specific name (eg, "HEAD-file" or "branch-link") exists, with everything else being references to it. Thus, for example, changing a name means changing only one thing in one place.