Add initial migration and participant adding/editing

This adds participant adding and editing, in the "Manage Participants" section. Also includes the initial db migration.
The reason I turned it into a model is because the properties on UserProfileMixin didn't have any effect unless it's a model -- the Participant wasn't getting associated with a User. I agree this mixin is kind of strange. I am fine with putting all this on the Participant model.

I separated out this UserProfile functionality into this mixin in an attempt to generalize the code.. hoping we could turn it into something we can reuse in other projects. I don't have any experience with making this kind of re-usable django model, though... I'm not sure if a mixin is the appropriate concept to use here.