Anti-evil features in preparation for user-creatable streams.

This is a batch of core anti-evil features that I feel are necessary before user-creatable streams are allowed. 

* A couple of tweaks to the discussion sidebar: removed and deleted posts won't be shown anymore and a data attribute can be used to override if a bad thread is put in.
* Contributors are now invited like moderators rather than directly added.  There's a quota on the maximum number of invites that can be outstanding at any given time.
* Events can be reported for breaking the sitewide rules. An admin interface is provided to view the reported events, counts by type of report, and to ban/approve them.  Banned events are not visible to users.
* Admins can create events from the UI.

![output](https://cloud.githubusercontent.com/assets/338853/3206860/89916b86-edcf-11e3-8086-23f4b0e59b91.gif)

I would like to roll this out as soon as possible (the weekend notwithstanding) to pave the way for user-creatable streams as soon as the end of next week (world cup).

:eyeglasses: @chromakode @umbrae @Deimos 

Notes: 

* there's some JS in the templates. This was deliberate to keep stuff that will never be used by non-admins out of the big bundle to save download time)
* I split the controllers up to separate files in the second to last commit. this makes the diff pretty hard to read.  Recommend reading separate commits.
OK, I've moved the JS for the admin ban/unban button into report.js.  I haven't moved the JS for the admin report listing into a JS file though because the JS bundle is scoped not to execute on that kind of page. I agree that having it in templates is sub-par but I'd like to build more of the event listing stuff out (rather than just this one admin page) before deciding how i want to lay the bundles for that.