For git versions that support it, the aliases will use the newer
`switch` instruction instead of `checkout` for its use cases.
Creating a new branch through `gcb` is for example done by
`git switch -c` instead of the older `git checkout -b`.
Additionally streamlined git version checking to be a little faster and
to unify its approach on posix sh, bash and zsh instead of utilizing
individual checking functions.
Fixed bash alias loading for additional modules by loading both general
sh aliases as well as individual bash aliases.
Moved git stash push/save aliasing to split between bash/zsh shell since
zsh can check for the correct version of git to invoke push command
(only part of git since 2.13) and bash simply falls back to save.