Add real referential integrity to our database.

Add the foreigner gem as a requirement, and add appropriate foriegn_key
declarations into our migrations.

Some people think referential integrity should be enforced at the Rails level.  I think these people have never had to recover from a corrupted database due to an application crash at the wrong time and/or multiple frontends trying to talk to the same database without using appropriate locking protocols.