Fix zone parsing in potentially ambiguous cases (fixes #1336)

This patch changes zone() and parseZone(), so that zone(tzString) now parses for timezones from the right, and parseZone() now uses _tmz data as specified by the format string, if available (and continues to fallback to zone(originalInput) if not).