Fix incorrect error messages in the time library
Fix errors in how parsed time values were used

%u flag takes a value in the range of 1-7. However value needs to be
stored in tm.tm_wday between 0 and 6.
%y takes a two-digit year value. Subtracting 1900_i32 from it is not
needed.
Add range checking in the time library

This was requested in Issue #2350. New function match_digits_in_range
added and used instead of match_digits wherever needed.
Tidied up long lines
Merge pull request #4466 from ScriptDevil/master

Range checking and miscellaneous fixes tin time library