Parse commit time as uint64_t to avoid overflow

The commit time is already stored as a `git_time_t`, but we were parsing it as a `uint32_t`.  This just switches the parser to use `uint64_t` which will handle dates further in the future (and adds some tests of those future dates).

This should fix #1263