Group the core plugins into new plugins subtree

The issue being addressed is that "core" was conflating two very
different types of projects: "core architecture" and "core plugins".

The goals of this restructuring:

1) Simplify the core dependency graph
2) Group related functionality together
3) Avoid grouping unrelated functionality

This change moves the following components:
  * core/commands     -> plugins/commands
  * core/launcher     -> launcher
  * core/log-slf4j    -> extra/log-slf4j
  * core/platforms    -> plugins/platforms
  * core/tools        -> plugins/tools
  * core/updater/core -> core/updater
  * core/updater/ssh  -> plugins/uploaders/ssh
  * script/minimaven  -> minimaven
  * script            -> plugins/scripting
  * ui/awt/base       -> plugins/uis/awt
  * ui/pivot/base     -> plugins/uis/pivot
  * ui/swing/base     -> plugins/uis/swing
  * ui/swt/base       -> plugins/uis/swt

It also removes the "all" profile in favor of always building all the
user interface plugins. (The ij-app project still respects the ij.ui
system property for controlling which interfaces are used at runtime.)
Unify commands projects into a single ij-commands

The dependencies are similar enough that this reduction in modularity is
an acceptable simplification. It makes ij-commands more consistent with
other analogous projects such as ij-tools and ij-platforms.
Split animation service and commands

The animation service is now part of ij-data, while the animation
commands continue to live in ij-commands.

This change unfortunately eliminates a potentially useful example of how
commands can expose their persistent functionality and state as a
service, but we can create new examples of that as needed.
AnimationService: split iface and implementation
Split I/O service and commands

The I/O service continues to live in ij-io, while the I/O commands are
now part of ij-commands.

There is still some cleanup to do in the NewImage and AWTDropListener
classes to migrate logic into services more properly. Right now, the
ij-ui-common-awt project has a dependency on ij-commands (so that
AWTDropListener can invoke the NewImage and OpenImage commands), which
is suboptimal. Fixing this issue may go hand in hand with ticket #860
anyway, so for now we wait.
AWTDropListener: fix style & resource leak warning
AWTDropListener: show drag-and-dropped strings

There is a weird bug right now where the value of the string shows up as
the displays *title* rather than its *content* though...
Put all built-in command icons in /icons/commands
Merge branch 'tree-reorg'

This branch centralizes the built-in ImageJ2 plugins (commands, tools,
etc.) to a common plugins/ subtree, outside of core. This change results
in a leaner, meaner core subtree and corresponding dependency graph.

This branch also unifies all built-in UI-agnostic commands into a single
ij-commands project, since the dependencies are largely the same.

Lastly, the branch cleans up some conflation between services and
commands (though a few small issues still remain).