Add a GenerifForeignKeyField

This is a WIP first pass at adding a GenericForeignKeyField. Currently just the dehydrate method is implemented, but it works!

Feedback appreciated.
I'm not sure if all these methods are needed.