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.
Note that if the intention is to update the table with new columns then a more sophisticated migration might be better

e.g. https://github.com/dimagi/fluff/blob/master/fluff/signals.py#L26