* The bulk of the description is moved from tz.html to date.html.
* The format and parse flags are now described in detail, instead of
implicitly relying on the C and POSIX specs. This gives me room
to specify a few corner cases that are either under-specified in
the official specs, or to add extensions.
* The from_stream / to_stream specifications are now located with
each specific type that implements them. This allows more detailed
documentation as to how each type interacts with the from_stream /
to_stream system.
* The format and parse functions are now more clearly separated from
to_stream and from_stream, and are documented to be nothing more
than syntax sugar on top of any type that choses to implement
to_stream or from_stream.
* For format, all a type must do is implement to_stream.
* For parse, each type X must specialize parse_manip<X,CharT,Traits>.
Each specialization must include a public typedef to itself named
type.
* Each parse_manip specialization must have a stream extraction
operator.
* This commit depends on expression-SFINAE. If this commit breaks
your build, it is likely that your compiler/version does not
support expression-SFINAE. To fix this NO_EXPRESSION_SFINAE
needs to be defined in the configuration area of date.h for
that compiler/version.
Moved formatting and parsing of sys_time and local_time from tz.h to
date.h in order to make this functionality available to a wider
audience. Existing code does not need to change. But future code
can #include "date.h" instead of "tz.h" and need not compile tz.cpp nor
link to curl.
Formatting zoned_time remains in tz.h.