3.0 - MySQL foreign key support

Much like Sqlite this adds foreign key support for MySQL. There is a bit of duplicated code between the two, but its still only one method so I'm not too concerned at this point. If postgres needs the same one method a base class/trait might make sense.

From what I read the foreign key reflection works slightly differently in MySQL 4, but I feel that is a pretty old version that we don't really need to support in the new version. If it becomes a problem we can fix the missing MySQL4 support.