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
Add Ashok Gautham to AUTHORS
Translate const references to extern functions as *i8 instead of the typical closure pair. Fixes #4522.
Add test case for change in 039bfe
long line police
std: various hacking on workcache.
migrate gc.rs to LinearSet
migrate task/spawn.rs to LinearSet
std: Ignore time::tests::test_strptime, it's failing for some reason

I'll file an issue.
migrate coherence.rs to LinearSet
migrate gather_loans.rs to LinearSet
drop is_not_empty from TreeSet/TreeMap
Merge pull request #4585 from thestinger/map

migrate LinearMap<T, ()> to LinearSet<T>
std: un-ignore strptime test; fix bug introduced by 1a226f instead.
Handle divide by zero in constant evaluator
Merge pull request #4586 from thestinger/treemap

drop is_not_empty from TreeSet/TreeMap