Subsecond timestamp format specifier

This patch updates the timestamp formatting functions so that we don't
use the builtin ``strftime`` under the covers.  This limits the number
of standard format specifiers that we support, but we can add more of
them back in as they're needed.  Importantly, this lets us add a new
specifier (%[width]f), not covered by ``strftime``, to include the
fractional seconds portion of the timestamp.

I'm also taking this opportunity to change the signature of the
formatting functions; the result is now rendered into a `cork_buffer`,
instead of into a fixed-size buffer.