convert most of libcore and libstd to structs, work around tzset race

Good morning,

This patch converts most of the libcore and libstd records into structs. I believe all that's left is extfmt and pipes, which needs a compiler change. It also removes record support for auto-encode, with the idea of simplifying down it down for eventual merger with the deriving macro. Finally, it includes what I hope is a fix for the randomred time tests by merging all those tests into one call so there are no more races on tzset.