Merge branch `tidy` into `master`.
Return version, change clock, return internals.

Changes to the calling conventions for the **Timezone** function.

With invocation, any argument that **Timezone** cannot interpret is
ignored. If you specify a date string that **Timezone** cannot parse, it
will discard the date string, since it doesn't know if it is, in fact, a
poorly formed RFC 3999 date. It could be a format where the caller
forgot to include a format specifier, or the name of a time zone rule
set that has not been loaded.

When the **Timezone** function is invoked with no arguments, it returns
a version string.

If the first argument is an array and the first element in that array is
numeric, then it is interpreted as a date array.

If the first argument is a number or an object that will convert to a
number, that number is used as POSIX time.

If the first argument parses as an RFC 3999 date the parsed value is
used as the date.

If the first argument is the string `"*"`, the clock value is used for
the current date.

If any argument contains a `%`, that argument is a format. The last
format specified wins.

If any argument is a locale name determined by its pattern, that is a
candidate for the locale to apply, last locale specified wins. If there
is no data for the named locale, then the string is discarded.

If any argument can be parsed as a date math operation, the date math
operation will be applied to the date value. Date math operations are
applied in order. At this point, adjustments are not included in partial
functions.

Otherwise, if the argument is a string and it did not match anything
above, we'll assume that it is the name of a time zone rule set. If no
such time zone rule set exists, then it is ignored.

Arrays that are not interpreted date arrays are flattened into the
variable arguments.

Any function is called with the request as the `this` context. It the
function returns a non-null value, then the **Timezone** function
returns that value immediately. These functions can be used to set the
clock or add format specifiers. They can also be used to inspect the
context, with a debugging function. (Maybe pass the date?)

If the object has a name property, then it is interpreted as a locale
definition.

If the object has a zones property, then it is interpreted as a zone
rule set definition.

Everything defaults to the inherited context. This is new. Before I was
resetting the locale to "en_US" if the specified locale was undefined.
It should revert to the inherited locale.

If no date can be found, a partial function is created from the given
request.

Removed the `retry` array, instead writing the candidate zone to a local
variable, and assigning it to the request if it exists outsize of the
arguments loop.

Previously, both the zone name and the date were defaults, but we have a
simple test to see if something is potentially a date, that excludes the
possibility that it is a zone name.

The clever notion to pass the **Timezone** function itself as the first
argument to indicate now was too clever and caused to much bloat. It
presents problems when the **Timezone** function is encapsulated in
another function. If the caller wants to specify now to enclosing
function, it cannot, because it does not have a handle to the
**Timezone** function itself.

    File                             Raw         Min         Zip     Min/Zip
    timezone.js              14745/14.40  7600/07.42  4042/03.95  2931/02.86
Merge branch `version` into `travis-ci`.