Use Ruby's ISO8601 time formatter and parser

This makes two changes: 

1) It slightly modifies the generated time string to include a colon between the hour and minute in the time zone. For example: +01:00 instead of +0100.

2) It adds Time support to the parser, by running it through Ruby's ISO8601 time formatter, and skipping over the output if it's not an ISO8601 string. This could have performance implications.