Add custom Attribute serialization and parsing.

Currently this is only used for DateTime's, which use dateutil to
parse a string, and datetime.isoformat() to output the value as a
string.

Fixes #4.