Back to using stock mktime() :(....

The kernel mktime implementation was (predictably) extremely
inaccurate in quick round-trip test.
Actually, use timegm instead to reduce tz work