Switch migration 3 to new migration syntax

This is the classic case of problems with the old migration syntax.
I copied the initial migration and modified it, but didn't change
the class name, so loading both migration 3 and 1 at the same time
would break things.
Add user_id to gifts table

Previously, you had to join to the events table to get the user for
a gift.  Some upcoming updates to the app make it easier to get the
user directly from the gift.

For safety, the field is immutable and required to be the same as
the event's user.
Don't store event_id in the session

Instead, make it a page parameter.  This does complicate things a
bit, since most pages require the event id, but it allows you to
have multiple tabs open for separate events, which the previous
code did not allow.

While here, stop echoing gift, senders, and receivers in flash
message on successful gift add.  These are now shown in the Recent
Gifts table, so there is no reason to clutter the flash.