make DirectorySourcePlugin an abstract base class

at the moment only lookup and reverse_lookup *must* be implemented. A default name
is implemented in the class and a plugin could probably exists without a load/unload