Intelligently determine which iso8601 time format to parse with.

Leaving other methods in place as to not break backwards compatibility.

`Time.iso8601()` now works with all 4 time formats:

 - zulu
 - with time zone
 - fractional seconds zulu
 - fractional seconds with time zone