Improve and add new features to events

1.  Follow PEP8
2.  Improve some strategy
3.  Add `number_restriction` and `attendance_deadline`