BUG: passing non-printable unicode to datetime parsing functions
ATM these segfault (on OSX at least).  There are more of these that I'll get in upcoming passes (I think no more than 2 more will be needed), keeping this one small to make the issue obvious and improve some of the typing in functions that will be checked in the next passes.

Needs double-checking: is the `val.isprintable()` check equivalent to "`PyUnicode_AsUTF8AndSize(val, length)` wont segfault"?  or is that just an approximation?