Add support for commits key on content source
Antora can currently aggregate content from a branch or tag of a content source repository. These are 2 of the 3 reference types in git that point to a tree. The third is a commit. Unlike branches and tags, which are named references, a commit is a concrete reference in a git repository (in other words, it's the reference to which a named reference points). The named references are mostly intended for humans, which is why Antora supports them. But there are use cases for when a commit is more appropriate.
It should be possible to specify commits from which to aggregate content using the commits key on a content source. The key should accept exact commits rather than a pattern, since a pattern doesn't make sense in this case. This key can be used alongside branches and tags, but caution should be used when combining them so as not to reference the same tree more than once.
We don't expect authors to use the commits key. Instead, it is designed for use by extensions. For example, an extension might modify the playbook to replace a branch entry with a commit in order to reproduce the output from a previous run. While the extension could create a transient tag for this purpose, that requires write access to the repository. So being able to reference a commit is more convenient.
Authors should always prefer tags over commits. We might even decide to only allow commits to be specified on the playbook object (set by an extension) rather than the playbook file.