Abstract base PluginLoader implementation.
Delegates to template methods to obtain plugin ClassLoader and plugin manifest file URL,
then load the manifest under the plugin ClassLoader, and constructs a Plugin object.
author: ahamid author: ewestfal
Template method that subclasses should implement to supply an appropriate
plugin ClassLoader
an appropriate PluginClassLoader throws: IOException - if anything goes awry
Template method that subclasses should implement to supply an appropriate
URL to the plugin's manifest
an appropriate URL to the plugin's manifest throws: IOException - if anything goes awry