Refurbish events API
The events API needs to be redone for a few reasons:
- Incomplete validation and error handling
- Difficult to implement permissions - redoing this would make #15 (closed) much easier
- Many redundancies and inefficiencies
- Doesn't make use of the builtin features in django-rest-framework
One possible difficulty is that some changes might require corresponding client changes, so we might run into yet another case where we have another server-client incompatibility.