with-editor-server-window-alist: new variable

Add new variable `with-editor-server-window-alist' to allow libraries
that use `with-editor' to override `server-window' for the files they
handle.  Users may add entries too, but it is generally a bad idea to
change or remove entries added by packages.

Add function `with-editor-server-window' which determines the
appropriate value on behalf of `with-editor-process-finish' and our
advice to `server-switch-buffer'.  Previously that function and that
advice arranged for the buffer-local value of `server-window' to be
used.

That hack had one advantage: it allowed packages to only _sometimes_
disrespect the value of `server-window'.  That is no longer possible,
e.g. Magit forces the use of `pop-to-buffer' for commit messages even
when it was not involved in initiating the commit.  (Actually it does
not use that function, but the effect is the same).  On the other hand
this allows the removal of all kinds of ugly kludges from Magit.