separate user and pledge models

to backfill missing information we need from users, we'll be sending
users an email saying "please visit this url and update your info!"

the url will be something like
 https://mayone.us/user-update/81e2c9a82a67bf3390cc44294825c17a5a
the point is for the url to be unguessable.

we want to collect missing info per email address, not per pledge.
many people (certainly devs) have pledged multiple times, and we
only want to send emails to a given email address once.

so i've refactored the data model to have a User model (with emails
and info we need to fill in), and a User has many Pledges. if you
pledge with a specific email address, your pledge will be added to
the list of pledges associated with that email address

we can then support people updating their email info across all
pledges, and examining, canceling, and editing their existing
pledges.

this is untested, i need to go to bed