Refactor the implementation of `chrono` to be about mapping not bytes
Refactor the implementation of `chrono` to be about mapping not bytes

Ultimately the PgTimestamp structs and friends are just wrappers that do
the same thing around their numeric types, but I think this makes the
code a bit clearer. We have a base "what is a timestamp in PG" struct.
This changes the code to be about "make one of those and send it to/from
the database", and less about what the DB representation is.

mcasper/diesel,tohou/diesel,tohou/diesel,diesel-rs/diesel,SoftwareWarlock/diesel,cascalheira/diesel,SoftwareWarlock/diesel,mcasper/diesel,sgrif/diesel,diesel-rs/diesel,cascalheira/diesel,sgrif/diesel