gc: notice gc processes run by other users

Since 64a99eb4 git gc refuses to run without the --force option if
another gc process on the same repository is already running.

However, if the repository is shared and user A runs git gc on the
repository and while that gc is still running user B runs git gc on
the same repository the gc process run by user A will not be noticed
and the gc run by user B will go ahead and run.

The problem is that the kill(pid, 0) test fails with an EPERM error
since user B is not allowed to signal processes owned by user A
(unless user B is root).

Update the test to recognize an EPERM error as meaning the process
exists and another gc should not be run (unless --force is given).

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'km/gc-eperm' into pu

* km/gc-eperm:
  gc: notice gc processes run by other users
Merge branch 'ss/builtin-cleanup' into pu

* ss/builtin-cleanup:
  Speed up is_git_command() by checking early for internal commands
  Call load_command_list() only when it is needed
  Consistently use the term "builtin" instead of "internal command"
Merge branch 'ss/safe-create-leading-dir-with-slash' into pu

* ss/safe-create-leading-dir-with-slash:
  Fix safe_create_leading_directories() for Windows

Conflicts:
	sha1_file.c
Merge branch 'rr/completion-branch-config' into pu

* rr/completion-branch-config:
  completion: fix remote.pushdefault
  completion: fix branch.autosetup(merge|rebase)
  completion: introduce __gitcomp_2 ()
  completion: prioritize ./git-completion.bash