Set push.default matching in test config

  Christian Walde reported that Git for Windows 1.8.0 hangs during testing.
  It seems that something about the warning Git 1.8 emits when push.default
  is unset causes the tests to hang on Windows.

  https://github.com/madsen/dist-zilla-plugin-git/pull/4
include_untracked really wants Git 1.6.5.2

  Document Git version requirements
  Skip Git::GatherDir tests when necessary
  Change skip_unless_git_version to allow skipping only some tests
v2.006

 - document that the include_untracked option of Git::GatherDir
   requires Git 1.5.4, but has certain issues before Git 1.6.5.2.
   Adjust tests to skip when necessary. (christopher madsen)
 - set push.default matching in test config (christopher madsen)
   Otherwise Git for Windows 1.8.0 hangs in push-multi.t
   (thanks to christian walde for reporting the issue)
Add remotes_must_exist to Git::Push (fix rt#82873)
Switch from Test::Exception to Test::Fatal
Test that Git::Push catches bogus remote
Load some dependencies only when needed (rt#82956)

  More work could be done on this, especially in CommitBuild (which I didn't
  touch), but I'll pick the low-hanging fruit first
v2.007

 - fix rt#82873 - Git::Push should check the remote exists
   New remotes_must_exist option defaults to true. (christopher madsen)
 - switch from Test::Exception to Test::Fatal (christopher madsen)
 - load some dependencies only when needed (rt#82956) (christopher madsen)
before_release should not be modifying push_to

  Add a test to make sure it stays fixed
v2.008

 - fix bug introduced in Git::Push 2.007 that broke remotes with
   additional parameters (christopher madsen)
add allow_dirty_match
add tests for allow_dirty_match
docs for allow_dirty_match
Credit Olivier Mengué for RT#82873 & RT#82956
Use HEAD~1 instead of HEAD^ in version-by-branch.t

  I believe a Windows test failure was caused by a quoting issue.
Specify minimum version of Test::Fatal
v2.009

 - add allow_dirty_match option to Git::Check and Git::Commit (graham knop)
 - change version-by-branch.t to use HEAD~1 instead of HEAD^
   Should fix test failure on Windows. (christopher madsen)
 - Test::Fatal 0.006 or better has been required since 2.007,
   but that wasn't explicit (christopher madsen, reported by jonathan leto)
Restore CWD at END { } to repress warnings ( and the problem they're warning about ) about 'cant remove path when cwd is X/Y for X'
Work around CommitBuild commiting dirty trees by doing a fresh write-out to commit, instead of committing a previously-written and possibly dirty tree
Make t::Util restore original directory on exit