Fix memory leak if ALL_STATE and multithreaded.

* localtime.c (gmtcheck) [ALL_STATE]: Don't leak memory if two
threads invoke this function nearly simultaneously.
Problem reported by Andy Heninger in:
http://mm.icann.org/pipermail/tz/2014-September/021599.html
* NEWS: Document this.
port to C11 memory model

We don't know of any problems with the previous code on practical
platforms, but it's safer to be portable.
Problem reported by Andy Heninger in:
http://mm.icann.org/pipermail/tz/2014-September/021599.html
* localtime.c (VOLATILE): Remove.  All uses removed.
(gmtcheck): Don't access gmt_is_set until we have the lock.
This may be significantly slower, but it's safer.
(localtime_tzset): Likewise.  This change isn't significantly
slower, though; it's more of a refactoring.
* NEWS: Document this.
Prefer localtime_rz to gmtime, for speed.

localtime_rz does not need to lock, but gmtime does.
* zdump.c (gmtime_r) [!HAVE_LOCALTIME_R]: New function.
(USE_LOCALTIME_RZ): New macro.  Use it to simplify ifdef usage.
(gmtz): New static var.
(gmtzinit, my_gmtime_r): New functions.
(main): Use them.
Have zdump output gmtoff= even on platforms lacking TM_GMTOFF.

* zdump.c (adjusted_yday, gmtoff): New functions.
(show): Use new function gmtoff to output gmtoff= even on
platforms that do not define TM_GMTOFF.
* NEWS: Document this.
* zdump.8, NEWS: Document the gmtoff=N output.
Port zdump to localtime that sets tm_isdst greater than 1.

* zdump.c (abbr): Don't assume localtime sets tm_isdst to 1
for daylight saving time; any positive value will do.
* zdump.8, NEWS: Mention that tm_isdst might not be 0 or 1.