Plugin system refactor

Use IDMPPlugin and DMPPlugin instead of delegates and attributes.