Add CSRF protection for AJAX calls

Without this setup, $.ajax POSTs and DELETEs fail.
Adjust profile page per spec revisions
Emails tab: opt out of e-mails for specific events
Privacy tab: "public/private" instead of "lock/unlock"

Also, only show icon when private.
Add link for forgotten username
Merge pull request #173 from maurizi/forgot-login-link

Add link for forgotten username
Register and cancel from event page via AJAX

I extracted the RSVP markup into a partial so it can be rendered and
returned as the response from the register and unregister views.

The workflow for making an AJAX request and replacing content with the
response was not specific to event registration, so I implemented a
reusable fetchAndReplace function.
Merge pull request #162 from azavea/feature/jcw/rsvp-from-event-detail

RSVP from event detail page
Add "Optional Information" form for post-registration activation

There is no server-side behavior for now. We will update this to
dynamically generate the groups dropdown (and possibly the entire form)
in a future sprint.

Refs #57
Merge pull request #172 from kdeloach/topic/optional-info-form

Add "Optional Information" form for post-registration activation
Merge pull request #156 from RickMohr/profile-page-revisions

Profile page revisions
Add skeleton group listing page
Merge pull request #179 from kdeloach/topic/group-list

Add skeleton group listing page
Profile page PR fixup
Merge pull request #180 from RickMohr/pr-fixup

Profile page PR fixup
Add TOS and "I am over 13 years old" fields to registration form

The TOS checkbox is a required field.

The "I am over 13 years old" checkbox value is recorded in the user
table.

Fixes #166
Add registration UI tests

This adds coverage for TOS and password validation and makes sure the
user is_minor flag is correct based on input from the registration form.
Hide some group follows on user profile page
Fix Lint
Replace unstructured event with prototype structure