contrib/subtree: add link sub-command

Adds subtree details to .gitsubtree where the directory already exists.

Signed-off-by: Paul Campbell <pcampbell@carnegiecollege.ac.uk>
contrib/subtree: update location of remote HEAD on push

When pushing a remote subtree and HEAD stored in .git/subtree-heads
immediately becomes invalid. Subsequent calls to git subtree status would
still use that outdated HEAD and claim a push was available.

Signed-off-by: Paul Campbell <pcampbell@carnegiecollege.ac.uk>
contrib/subtree: status displays refspecs to aid push/pull/divergent review

Report the refspec ranges showing what is waiting for a push or pull, or
where the subtree has diverged from the source.

Signed-off-by: Paul Campbell <pcampbell@carnegiecollege.ac.uk>
Merge branch 'subtree-usability' into my-daily-driver