dispatch now lines the types up RetconDataSource

This means that the ForeignKey built in dispatch now has entity and
source type parameters which the type checker can prove have an
instance of RetconDataSource.

Hoorah for ScopedTypeVariables!