Date field

Since LDAP doesn't have a native type for storing dates (without time), it is common to store them using strings. Examples are birthdays and other dates that user provides with 1 day granularity.

`DateField` implements a simple interface that uses `strftime()` + `strptime()` to store dates in LDAP. It defaults to using the `YYYY-MM-DD` format of ISO8601 but can take another format as an optional argument.

Lastly, I don't understand your comment wrt timezones. I don't think we should be applying any timezone magic to dates because they aren't granular enough to handle it.