try harder to locate a suitable emacsclient executable

Improve how the default value of `magit-emacsclient-executable' is
determined.  If we fail to do so, show a warning.

We determine whether an emacsclient executable is compatible with the
current Emacs instance by comparing its version with `emacs-version'.
The versions don't have to match exactly, but at least the major part
has to do so.

This commit changes how an executable's version is determined.
Previously we simply used the version suffix of the executable.
Unfortunately when Emacs is installed manually, then the emacsclient
executable usually does not have a version suffix, and so we did fall
back to the suffix-less executable which comes first on `exec-path',
which is a lottery.

Now we use `emacsclient --version' to determine the version, and the
order in which version-suffix-less emacsclient executable appear on
the `exec-path' therefor no longer matters.