We previously had this weak argument called projectName which let you set a single part of a man page header. Instead do the best we can if the caller doesn't pass us anything, but let the caller specify anything they want.
The CommandPath() for a parent might have a space (if .Parent() != .Root()) so we need to replace those spaces with `-`