SortablePlugin: split iface and implementation

The SortablePlugin was the only abstract class that broke the rule of
having "Abstract" as its prefix. It also, consequently, had no
corresponding interface, so any new plugin type that extended
SortablePlugin but also provided a corresponding interface had to use
multiple inheritance across SciJavaPlugin, Contextual, Prioritized and
HasPluginInfo, which was rather unwieldy.

This change creates a new interface, RichPlugin, that unions the
aforementioned interfaces, and also a corresponding AbstractRichPlugin
which is really just SortablePlugin with a new name. This scheme allows
new plugin type interfaces to simply extend RichPlugin, and their
corresponding abstract base class to simply extend AbstractRichPlugin.

The old SortablePlugin is now deprecated and is a trivial extension of
AbstractRichPlugin, for backwards compatibility.