By the power of Grayskull (and ScopedTypeVariables)

Build a ForeignKey in `dispatch` so that the data sources will be able
to do their thing.
Merge branch 'wip-user-api' of github.com:anchor/retcon into wip-user-api