add annex-shell remote config

remoteAnnexShell :: RemoteGitConfig -> Maybe String

Add the remoteAnnexShell field to the RemoteGitConfig data type, for
holding an optional remote.<name>.annex-shell configuration.  This
will be used to specify an alternative git-annex-shell program to
run on git remotes.
add Annex function to get RemoteGitConfig for a Repo

getRemoteGitConfig :: Git.Repo -> Annex (Maybe RemoteGitConfig)

If the given repository is a remote return its RemoteGitConfig,
which includes the annex-shell configuration.
execute remote.<name>.annex-shell on remote, if set

It is useful to be able to specify an alternative git-annex-shell
program to execute on the remote, e.g., to run a version not on the
PATH.  Use remote.<name>.annex-shell if specified, instead of the
default "git-annex-shell" i.e., first thus named executable on the
PATH.