Keep worktree relative to GIT_DIR

core.worktree can be set relatively to GIT_DIR, thereby preventing the
hard-coding of the home directory path, which should make a vcsh setup
more portable.

On the other hand, this means that the vcsh repo.d is now invariably
linked to its position, relative to the base directory. Apply this patch
only if you think it to be less likely that people change
~/.config/vcsh/repo.d to something else, than they would rsync/tar/mv
a whole tree to a different $HOME.

Paths are resolved using Git itself, for maximum portability.

In addition to making sure the new method works on new repositories,
I checked that

  - "old" repositories can be used with the new code just fine;
  - upgrading works.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Get rid of GIT_WORK_TREE during vcsh sessions

This patch gets rid of GIT_WORK_TREE completely, which makes the whole thing a
bit more transparent, I find. Git uses core.worktree anyway, so the
environment variable isn't needed.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Merge remote-tracking branch 'madduck/relative_worktrees' into merge--madduck/relative_worktree
vcsh: Add support for choosing relative or absolute core.worktree
Merge branch 'merge--madduck/relative_worktree'

Github: Fixes richih/vcsh#26