Enable exact birthdates

Adds support for collecting the exact birthdate from attendees. Fixes #586.

The database on live/staging servers will need the "birthdate" column added to the Attendees table and the AgeGroups table added before this code can be used on them.
Unfortunate.  This is definitely an example of a refactoring that would be a lot easier if we had more unit tests.  I made a lot of progress on unit tests this year (more than any other year ever), but the coverage is still pitifully low.

If you're interested in a kludgy solution, you could make ``age_group`` a property which checks ``birthdate`` and have the SQLAlchemy column property be called ``age_group_col`` (you can tell it to keep the existing column name in the database so that we don't need to do a migration).  That would be... kind of a hacky workaround, but it would make it less likely for this kind of thing to break.

A less kludgy solution would be to have a ``calculated_age_group`` property which checks ``birthdate`` and check that in these validations instead of checking ``age_group`` itself.