Use new RichPlugin interface where appropriate

This is cleaner than the old SortablePlugin extension point (which was,
confusingly, an abstract class): interfaces which extend RichPlugin are
implemented by abstract base classes which extend AbstractRichPlugin,
which matches the pattern used everywhere else.
Main: revert ordering of args processing

There was a problem with --run not working before the UI has been shown,
so I swapped the order to do processArgs after showUI. Unfortunately,
that prevents the console arguments from affecting the behavior of
showUI (e.g., by setting which user interface actually gets activated).

Better to process the arguments first, *then* show the UI.
MenuService: remove hardcoded dependencies

Whenever possible, it is cleaner not to force a service interface
to depend on other service interfaces.