redo %SIG, exit code and internal var handling #12

 * Fix %SIG localization

Previously, %SIG was localized by local *SIG=+{%SIG}. Although that
localizes the hash, its values loose their magic. Hence, setting
$SIG{$sig}=\&handler does not work anymore as expected.

This change localizes the values instead of the hash itself like local
@SIG{keys%SIG}=values %SIG.

 * Fix exit code handling inconsistencies

Previously, if the script simply ended without calling exit, the
generated sub returned the result of the last statement of the script.
However, if the script called exit, the sub returned undef on exit 0 or
died with a exited nonzero: ... message. This is inconsistent. exit $rc
or simply $rc at the end of the script should behave identical.

 * Solutions might be:

  1. never die, even if the script itself dies on something else than
     exit. That would be most consistent with the operating system
     shell. But the shell does not know about Perl exceptions.

  2. propagate exceptions other than exit and return the exit value no
     matter if it's 0 or else.

  3. propagate exceptions other than exit and throw an exception if the
     script's exit status is something other than 0. Return normal only
     if the script returns or exits with 0. Here an additional decision
     that has to be made is whether '' or undef are taken as 0 as the
     shell would do or not.

The proposed change implements 2. and converts the script's return/exit
code to a number. So, '' and undef are taken as 0.

 * Fix variable exposure

Previously, lexical variables in compile() were exposed to the script
and the variable names were not very obfuscated. So, clashes with not
well-written scripts could happen. This is fixed.

 * Tested on:

  1. debian wheezy with the system's Perl 5.14.2

  2. a self-built Perl 5.18.0 on openSuse 12.2
fix minor dist related issues

Add .mailmap for Miyagawa's new email address.

Add perl 5.8 to travis config, we need to make sure the %SIG
localization code passes on 5.8.8+ .

Use my ContributorsFromPod plugin to override ContributorsFromGit in
Milla, because we have contributors that are not in the Git history.

Set GithubMeta.user = miyagawa in case other people build the dist.

Rebuild dist with above changes.
improve exit code handling in #12 and misc.

Preserve the old behavior of throwing an exception on explicit non-zero
exit, unless this is overridden in the object or globally. Add tests.

Truncate exit value to 0-255 as per POSIX.

Fix a warning on perl 5.8.

Update .gitignore and Changes.

Allow passing arguments to the CGI coderef, set in both @_ and @ARGV
locally.

Update POD for modified return code behavior and the argument passing.

Remove 'no warnings' in the CGI, don't know how that got in there, but
the user should handle that herself. Perhaps we should add an option for
this as well.