Made commit details parsing more robust for ReceivePackHook

The initial implementation assumed that space was a valid token to use
for parsing the author/committer signature.  In practice this doesn't
work as the name field can contain spaces.

Further, the timestamp field sometimes contains an offset that allows
the local time to be calculated, making it harder to just find the
timestamp value in the array of tokens.

This change parses the tokens sequentially, first looking for the type
token and then passing the rest of the string as data for further
processing.

Signature parsing now uses the email address as the anchor for the
parser, looking for '<' and '>' first and basing the rest of the parsing
on that.  This should be a bit more robust to variations within the name
and timestamp fields.

Tested using the failing string by stepping through the debugging and
validating that all tokens were parsed as expected.
Changing timestamp calculation to use DateTimeOffset instead of DateTime

The timestamps coming from the client are already UTC, using
DateTimeOffset directly avoids the need to convert from a DateTime to a
DateTimeOffset later.

Tested manually via the debugger.
Merge pull request #174 from kfarnung/master

Made commit details parsing more robust for ReceivePackHook
Prepare for the version 3.4.1
Push auditing can now be turned off through web.cofig. It is set to be off by default.
Merge pull request #177 from stanshillis/bypass

Push auditing can be turned off through web.config.