Create Flag model

For now, all this does is replace the flagged? boolean on Donations.
Next I will start migrating flag functionality to this model.
Rename Donation#flag method to add_flag

So we can access its current/active flag normally. I expect the add_flag
method to disappear before this refactor is done anyway (that logic
should be on the flag model itself).
Refactor flags to be based on Flag model

* Flag and fix logic is now mostly on the Flag model, rather than being
  on events, donations, etc.
* In particular, flag message, fix type, and fix message are all
  explicitly stored on the Flag model.
* There is now an explicit flag type as well, which should help us
  expand this in the future
* Flags controller is now based primarily on the flag model.
A few more tweaks after manual testing
Add flag backfill

Walks through the history of each donation and tries to create flag
entities that match the event history.
Tweaks to fix tests
Render flag/fix messages properly in event log