Use PluginService#createInstance where feasible

This method is better than PluginInfo#createInstance(), because it
automatically injects the context and priority, catches exceptions, and
logs them to the LogService. We were doing all of this manually in a few
places, which needlessly repeated code, and increased the probability of
bugs related to context and/or priority injection (or lack thereof).
DefaultUIService: fix order of isDefaultUI method
CalculatorService: fix javadoc
Update to use new-style SciJava Common App plugins

This change avoids ImageJ "taking control" of the SciJava Common
AppService, instead registering a new App for ImageJ which can be
queried easily by downstream code.
SystemInformation: report info on all apps

The AppService reports information on all registered Apps, so why not
have System Information report all that information, too, rather than
only that of the ImageJ app? For example, if SCIFIO is present (which it
will be if ij-io is on the classpath), System Information will now
include information about it as well, such as its version number.
ImageJ: add missing javadoc
ImageJ: add App-related convenience methods

These methods are more convenient than writing e.g.:

    ij.app().getApp(ImageJApp.NAME).getTitle()

The invocation above is arcane and difficult to guess, whereas providing
the methods directly from the context wrapper simplifies things.
Merge branch 'friendly-app'

This branch updates ImageJ to use the latest SciJava Common AppService
API. Specifically, it defines a new App plugin for ImageJ which can
report its title, version, and other metadata, without "taking over" the
entire AppService (which is what happened with the last API iteration).

In this way, other applications sharing the same context (e.g., SCIFIO,
and even SciJava Common itself) can independently report their own
application metadata without interfering with ImageJ or vice versa.