Add reflection so providers need not declare ExternalAssignmentProviderCompat

This allows tools to implement the getAllExternalAssignments method and
have it be used while not needing to declare the interface. This is
important for tools like Lessons that compile from one source tree
against multiple versions of Sakai, since it does not require a build
profile and separate source files.