Added invalidAt function to get invalid unit index

isValid is boolean, so its not very helpful in determining which section of
a date is wrong. inavlidAt returns the index of the broken token, where 0 is
year and 6 is millisecond.

Requested in #570.