Backend survey submission

This implements the survey submission (demographics and event surveys) for AppEngine.
This is to let us distinguish (in the datastore, when exported) the Demographics surveys (from registration) and the "Experience Sampling" surveys. Since they're the same data model, it seemed easiest to just add a type field.

Maybe there's a better name than "Survey" for the main type? Can't think of one though.