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.
This specific line is throwing an error when I run `sep reset_uber_db`

```
Traceback (most recent call last):
  File "/home/vagrant/sideboard/env/bin/sep", line 9, in <module>
    load_entry_point('sideboard==0.1.0', 'console_scripts', 'sep')()
  File "/home/vagrant/sideboard/sideboard/sep.py", line 24, in run_plugin_entry_point
    _entry_points[ep_name]()
  File "/home/vagrant/magfest/uber/reset_db.py", line 24, in reset_uber_db
    insert_admin()
  File "/home/vagrant/magfest/uber/reset_db.py", line 17, in insert_admin
    hashed   = bcrypt.hashpw('magfest', bcrypt.gensalt())
  File "/home/vagrant/sideboard/sideboard/lib/sa/__init__.py", line 199, in __exit__
    self.session.commit()
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/orm/session.py", line 721, in
commit
    self.transaction.commit()
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/orm/session.py", line 354, in
commit
    self._prepare_impl()
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/orm/session.py", line 334, in
_prepare_impl
    self.session.flush()
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/orm/session.py", line 1824, in
 flush
    self._flush(objects)
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/orm/session.py", line 1851, in
 _flush
    self.dispatch.before_flush(self, flush_context, objects)
  File "/home/vagrant/sideboard/env/lib/python3.4/site-packages/SQLAlchemy-0.8.5-py3.4.egg/sqlalchemy/event.py", line 372, in __call
__
    fn(*args, **kw)
  File "/home/vagrant/magfest/uber/models.py", line 1435, in _presave_adjustments
    model.presave_adjustments()
  File "/home/vagrant/magfest/uber/models.py", line 462, in presave_adjustments
    self._misc_adjustments()
  File "/home/vagrant/magfest/uber/models.py", line 479, in _misc_adjustments
    self.age_group = self.session.age_group_from_birthdate(self.birthdate)
  File "/home/vagrant/magfest/uber/models.py", line 1169, in age_group_from_birthdate
    attendee_age = int((calc_date - birthdate).days / 365.2425)
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'
```

You can comment the line out while you reset the database, but if anyone has any ideas to fix it, I'd appreciate that.