Since a MapEditor can have a different selection provider depending on the tool that is selected, this class
is needed to manage the changing selection providers.
UDIGEditorInputDescriptor objects create IEditorInput objects that wrap IProjectElements objects.
Since IProjectElements are not editor inputs and cannot be since they are model objects and not
UI objects an extensible system of turning IProjectElement objects into IEditorInput objects are
needed.