    - test tzoffset
    - make more tests (see Devel::Cover)
    - clean up xs
    - allow cdate() to print as different formats
    - Document format flags that don't work everywhere (see comments in *.t files)
    - Every "return 0" in the strptime case statement in Piece.xs needs to be preceded by a useful error statement
    - _C_time_locale should only get populated when really needed
    - use macros or something to get all the strlen stuff out of xs hash fetches
    - make sure changing class vars effects all instances 
    - add better %V support, newer versions of libc seem to have it: 
            https://opensource.apple.com/source/Libc/Libc-1158.20.4/stdtime/FreeBSD/strptime.c.auto.html



Document Time::Piece limits:
    dates before 1970
    strptime doesn't really handle %z %Z or %V
    add_months calls _mini_maketm which only uses gmtime, probably wrong
    strftime doesn't really handle %s right since it calls system mktime with wrong parameters if given a tm struct built from gmtime (fixed?)
    uses epoch everywhere so don't try to calculate stuff before 1970
    mktime docs even state it is only for localtime (gets used for stuff from gmtime sometimes)
    TP is guaranteed to parse stuff that is returned from strftime, not so much any other random time string


use sensible defaults for tm struct:

               int tm_sec;    /* Seconds (0-60) */
               int tm_min;    /* Minutes (0-59) */
               int tm_hour;   /* Hours (0-23) */
               int tm_mday;   /* Day of the month (1-31) */
               int tm_mon;    /* Month (0-11) */
               int tm_year;   /* Year - 1900 */

