* Define exactly how leap years are computed to avoid ambiguity.
* Define precise values for year::min and year::max which correspond
to the C minimal limits for short.
* Rewrite year::ok() in terms of min and max.
* For the two format functions dependent upon Alloc, constrain against
basic_ostringstream<charT, traits, Alloc> instead of
basic_ostream<charT, traits>.
* The mapping between sys_time and file_time can occur at precisions
coarser than a second because the only anticipated difference
between these clocks is the epoch, and not the inclusion of leap
seconds.
* 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.