Correctly encode time zones with seconds

The previously used RFC3339Nano format to encode times does not take
seconds into account for time zones. This commit fixes that by appending
the time zone seconds to the formatted time, but only if it's non-zero.

Fixes #286