User configurable reports

the plan is to pilot/QA on this on prod so I'm putting it out for code review now. I'm guessing it's easiest to review as a whole, though the commits should represent ~atomic actions.

I think it's good to merge whenever code review passes.
interesting. i think `keep_existing` might be more correct for this scenario, but i'll look closer and see if that has any problems. am guessing we will want something very similar to fluff's migration eventually.