RSVP from event detail page

This PR activates the RSVP button on the event detail page.

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.

There are several different behaviors triggered by different states of the database and logged in user, so I will add some integration tests before merging.
Consider reordering this like so:
```python
event_registration = do(login_required,
                        has_training,
                        render_template('event/partials/rsvp.html'),
                        route(POST=v.register_for_event,
                              DELETE=v.cancel_event_registration))
```