vcsh: Initialize repos with --shared=0600

Configurations and other dotdir content may be highly confidential.

Ensure we're not leaking/exposing information by making vcsh
repositories user-accessible, only.

Thanks to Enrico Zini for realizing this was a problem.
vcsh: strip host part from GIT_REMOTE when inferring VCSH_REPO_NAME

`vcsh clone` does:

    VCSH_REPO_NAME=$(basename "${GIT_REMOTE}" .git)

Typically, most remote paths will have a non-empty directory component,
so using basename works well in all common cases. However, when doing
something like:

    % vcsh clone example.org:repo.git

VCSH_REPO_NAME will be set to "example.org:repo" instead of "repo". This
also happens when using url.<x>.insteadOf, à-la:

    % vcsh clone v:repo

Stripping everything up to the first colon in the remote URL fixes the
issue.

N.B.: remote URLs with protocol (e.g. http://, git://, or ssh://) do
not exhibit this problem, and are unaffected by this change.

Conflicts:
	vcsh
vcsh: don't allow `clone` to choke on filenames with spaces

By replacing the "for" loop with a "while" loop, it is easy to read
line-oriented output without worrying about spaces. However, now the
loop executes in a subshell, and VCSH_CONFLICT won't be available in
the parent shell. In this case, a trivial, portable solution is to
have the comparison as the last command in the subshell.
Update CONTRIBUTORS
add hooks to enable auto handing of merge conflicts

These hooks before and after the actual checkout process
will enable a pair of hook scripts to automatically handle
conflicts and potentially allow the checkout of repositories
over existing file sets
add sample hooks that allow cloning over extant files

Cloning a repo over an existing set of files would usually
cause a merge conflict that aborts the process and requires
manual intervention. This pair of hooks handles that case
by manually moving the extant objects out of the way,
completing the checktout, then restoring them to their
original places. The resulting state is a set of unstaged
local changes.
Merge pull request #89 from alerque/master

Add hooks to allow fancy merge handling
doc/sample_hooks/: Cleanups
Introduce static manpage as part of normal repo

GitHub: fixes RichiH/vcsh#104
vcsh: Pass along exit code

If `git foo` exits 13, it would be prudent for vcsh to exit 13, as well.
Start with support for `vcsh pull`.
vcsh: Fix up the rest of the (relevant) git calls
Merge branch 'feature/chown'
Fix typo $XDH_CONFIG_HOME -> $XDG_CONFIG_HOME
Merge pull request #106 from a-sk/master

Fix typo $XDH_CONFIG_HOME -> $XDG_CONFIG_HOME
vcsh: Formatting
vcsh: Support per-repo .gitattributes
Merge branch 'master' of github.com:RichiH/vcsh
Merge branch 'feature/gitattributes'

Conflicts:
	vcsh
vcsh: Support whitespace in filenames for gitignore

GitHub: fixes RichiH/vcsh#105
vcsh: $() instead of ``