GSoC 2013: foreignkey refactor

The first milestone in this year's GSoC project, composite fields. It adds auxiliary fields to `ForeignKey` and `OneToOneField`. More infrormation in [the proposal][1] and on [the mailinglist][2].

This pull request is not intended to be merged yet, it is here for review purposes for now.

[1]: https://gist.github.com/koniiiik/5408673 "GSoC proposal: Composite Fields, vol. 2"
[2]: https://groups.google.com/forum/#!topic/django-developers/CD7OrkJ63zc