versions: split version_for_sha and use yield.
versions: add branch support in rev_list.
versions: add bottle filenames method.

Closes #22727.