Rewrote event creation/editing (except attachments)

New event addition/editing uses submodel javascript so you can dynamically add or remove eventdates/event_roles without leaving the page.

Also changed how blank calls/strikes are stored. Previously they were stored as “invalid” times, i.e. times that were either two days before or two days after the event started/ended (for call/strike respectively). This is stupid when there is already a built-in special value: nil. Now, blank values are nil and eventdate validates that call/strike are either “valid” times, or nil.

Also fixed sorting of displayed roles.