Add new error code for ErrParseTime.

This commit introduces a new error code for errors while parsing time.
Previously it just returned the underlying time.ParseError err, however
this was inconsistent with the rest of the package that returns
*UnmarshalError.  The underlying time.ParseError is still available via
the Err field of the UnmarshalError struct.

While here, add negative tests to ensure the time-related errors work as
expected.