Make AppService lazily initialized with singletons

This converts the AppService to a SingletonService, and also removes its
overridden initialize() implementation in favor of a lazy initialization
pattern.
AppService: add method to get foremost app

The new getApp() method returns the first app on the list -- i.e., the
one with the highest priority.
UIService: use default app instead of SciJava

This makes it easier for other applications to take precedence
without needing to override the DefaultUIService.
SciJavaApp: make low priority

This makes it easier for other apps to take precedence.

See: AppService#getApp()