add support for a 'fatal' option

this option allows to define which exit status codes will cause run() to die

the defaults are 128 and 129, for backwards compatibility
ignore the 'fatal' option while constructing the object

otherwise, doing something like

   Git::Repository->new( { fatal => 0 } )

would cause the constructor to die, because it calls run()
with its options (thus causing valid commands to die)
factorize the error testing into a dataset
add some tests for the 'fatal' option
use an alias to finely control the exit status

this alias is probably Unix-specific, a Windows version is needed
show extra warnings that weren't tested
ignore the 'fatal' option in test_repository()

the function is calling run() with the options intented for the test repository,
and non-default values of 'fatal' might cause problems
optionaly create a new repository at the beginning of the test

this will allow for passing repository options for the batch of tests that follow
factor out the alias.exit value

this makes it easier to set for new test repositories,
and will allow for platform-specific versions
do not modify the option hashes that were passed

because of the way System::Command handles options (the last value
overrides all previous ones for a given key) the 'fatal' key in the
generated option hash that we're pushing on top of the list of options
will override all others
a test repository where all non-zero exit status are fatal
more appropriate comment about fatal exit codes
test a repository where ALL exit codes are fatal
replace the alias by a fake git program

Thanks to Mithaldu for helping me write and test the Win32 version of the fake git
"!0" can be used as a shortcut for 1 .. 255 in 'fatal'
small copyediting
document the 'fatal' option
add a section about 'fatal' in the Tutorial
Merge branch 'fatal'