Better git alias completion

Config entries that contained the word "alias" but were not in fact
aliases no longer are treated as aliases.
Complete custom git commands in $PATH

Git treats executables in $PATH that start with "git-" as custom
subcommands. Add completion support for them.

Fixes #1680.