Log detailed errors from API
Fetch site resource concurrently
Change context middleware so that whoami request is first in list

There is an implicit dependency in some views on this. This is bad
and should be fixed, but for now let's keep it that way.
Improve 'Forbidden' view so that site is always fetched even if a bad access token is used
Clean up cruft and reformat microcosm/views.py
Refactor EventView.single
Remove interstitial item creation page
Add optional error detail to APIException

This may be returned by the API and should be used to disambiguate
errors, e.g. the difference between an Event being full and the user
not having permission to RSVP to it.
Improve formatting of views.py and use decorators for common checks

Defines a decorator for checking whether the request includes an access
token. Uses django's built-in decorator for checking the HTTP method
of requests.
Style fix
Fix type error in ProfileView.single
Fix uploading attachments in conversation and event forms

Changes the enctype to 'multpart/form-data' and adds attachments.js
Simplify attachment handling in all views

Defines a new function, process_attachments, which is used in all views
that accept a comment and optionally any attachments.

This is now used in conversation and event create views, and comment
create/edit.
Removed duplicate and differently versioned persona javascript files, updated the remaining instance to the latest version, and renamed it to persona.js to make it clear what the file is for
First partial at adding the membership groups
First partial at adding the membership groups
Changed the title of the headers
Added form validation and the creation of the requests needed to process the form
Added includeUsers to the serialisation
Expanded help text in metabar