Git::Deploy: remove commented out line of code

This line of code is the same as the uncommented one below it, just
remove it.
Git::Deploy::Test: don't try to clone our own repo

Instead of trying to clone our own repo just make a new one, we don't
need the git-deploy repo for testing, anything will do, and this makes
it possible to upload the distro to CPAN.
Git::Deploy::Test: re-arrange & add code/comments for clarity
Git::Deploy::Test: specify a custom log directory for tests

Instead of using the global log directory or /tmp use the temporary
directory we create for the tests for logs.
Git::Deploy::Test: support -1 argument for a wanted exit code for any non-0

Sometimes we want a command to fail but we don't care what exit code
it emits when doing so, introduce the magic -1 exit code for all non-0
exit codes being OK.
Git::Deploy::Say: use catfile() for getting the logfile

So that if you set the log directory to e.g. / it won't write to
//git-deploy.log, but to /git-deploy.log.
Git::Deploy::Say: make get_log_handle() private

There's no need to export this function, it's only used within the
Say.pm module.
Git::Deploy: work around deep recursion when GIT_DEPLOY_DEBUG is set

When GIT_DEPLOY_DEBUG is set we'll start calling _info in this
routine, which unless GIT_DEPLOY_SAY_SKIP_LOGGING is set will call us
again.

Hack around that by not making this routine log, don't just make this
depend on $DEBUG since if we _die() here we'd have the same thing.

This was the least messy thing I came up with to solve this,
alternatively _get_config() could skip calling git_cmd, or we could
completely disable logging under GIT_DEPLOY_DEBUG, but that would only
solve this partially.

Here's the sort of callstacks we'd get if we didn't have this fix and
we ran:

    GIT_DEPLOY_SAY_SKIP_LOGGING=0 GIT_DEPLOY_DEBUG=1 perl -Ilib t/run.t

    oh noes recursion at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 125
            Git::Deploy::git_cmd('git config  --get --path \'deploy.config-file\'') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 219
            Git::Deploy::_get_config('--path', 'deploy.config-file', '') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 173
            Git::Deploy::_get_config('', 'announce-mail', 'none') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 251
            Git::Deploy::get_config('announce-mail', 'none') called at /home/avar/g/git-deploy/bin/git-deploy line 444
    oh noes recursion at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 125
            Git::Deploy::git_cmd('git config  --get --path \'deploy.log-directory\'') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 219
            Git::Deploy::_get_config('--path', 'log-directory', '/') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 252
            Git::Deploy::get_config_path('log-directory', '/') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 1485
            Git::Deploy::log_directory() called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy/Say.pm line 94
            Git::Deploy::Say::_get_log_handle() called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy/Say.pm line 118
            Git::Deploy::Say::__log('# INFO : git config  --get --path \'deploy.config-file\' 2>&1\x{a}') called at /home/avar/g/git-deploy/bin/../lib/Git
            Git::Deploy::Say::__say('ARRAY(0x2bd2760)', '# INFO :', 'git config  --get --path \'deploy.config-file\' 2>&1') called at /home/avar/g/git-dep
            Git::Deploy::Say::_info('git config  --get --path \'deploy.config-file\' 2>&1') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm lin
            Git::Deploy::git_cmd('git config  --get --path \'deploy.config-file\'') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 219
            Git::Deploy::_get_config('--path', 'deploy.config-file', '') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 173
            Git::Deploy::_get_config('', 'announce-mail', 'none') called at /home/avar/g/git-deploy/bin/../lib/Git/Deploy.pm line 251
            Git::Deploy::get_config('announce-mail', 'none') called at /home/avar/g/git-deploy/bin/git-deploy line 444
Git::Deploy::Say: don't refuse to work if we can't log

Instead of dying if we can't log just warn once per invocation
instead, just because the permissions on our logfile are screwed that
doesn't mean we should halt all deployments.

In addition this logging code was overly verbose because it was trying
only to open the log handle and computing the log filename once per
process. We can just use Memoize for that and save ourselves the
verbosity.
Git::Deploy::Say: don't log things twice to stderr/stdout under GIT_DEPLOY_SAY_SKIP_LOGGING

Fix up the facility to skip logging Burak added in 61f3f56. This
doesn't make any sense to me, if we're going to skip logging we should
just skip it, not start spewing the logging output on STDOUT/STDERR
twice. That leads to nonsensical output like:

    $ GIT_DEPLOY_SAY_SKIP_LOGGING=1 perl5.14.0 -I/home/avar/g/git-deploy/git-deploy-lib /home/avar/g/git-deploy/bin/git-deploy abort
    # avar         | 2012-09-01 13:53:35 #  INFO : Starting step 'abort' at 2012-09-01 13:53:35
    # INFO : Starting step 'abort' at 2012-09-01 13:53:35
    # avar         | 2012-09-01 13:53:35 #    LOG: abort:   2012-09-01 13:53:35     master  dda3f1725e8e08520fb4f1b03613085761bb7f24        1001    avar
    # avar         | 2012-09-01 13:53:35 #  NOTE : Rolling back to debug-20120901-134137
    # NOTE : Rolling back to debug-20120901-134137
    # avar         | 2012-09-01 13:53:35 #  NOTE : Rolled back to 'debug-20120901-134137' succesfully
    # NOTE : Rolled back to 'debug-20120901-134137' succesfully
    # avar         | 2012-09-01 13:53:35 #  INFO : wrote deploy file '.deploy'
    # INFO : wrote deploy file '.deploy'

Which should obviously be like this instead, as it is with this patch:

    $ GIT_DEPLOY_SAY_SKIP_LOGGING=1 perl5.14.0 -I/home/avar/g/git-deploy/git-deploy-lib /home/avar/g/git-deploy/bin/git-deploy abort
    # INFO : Starting step 'abort' at 2012-09-01 13:55:21
    # NOTE : Rolling back to debug-20120901-134137
    # NOTE : Rolled back to 'debug-20120901-134137' succesfully
    # INFO : wrote deploy file '.deploy'
Git::Deploy: don't implictly read user.* variables as --global

Change the user.* variables so we don't force them to be read
globally. It's not an illegitimate use case to set a username/email
per rollout repository, or maybe to have some strange setup where each
user deploys from their home directory.

The immediate need I have for this is to be able to test how the tool
behaves with this unset without editing ~/.gitconfig, but I don't see
the harm in just never adding --global here.