Make the on-disk representation of taps unambiguous

This commit supports "-" and "_" in names of user and repository.

Closes #28203.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Update bash completion for new tap format