Create a Source generic relation.

If a model has two GenericRelations to the same model, there is no way to differentiate between them. So this pull request adds a new Source model to be used for sources, along with a test to show the problem.