Split ImageJ service framework into scijava-common

The service framework was migrated to SciJava Common:

    https://github.com/scijava/scijava-common

This change will enable ImageJ and SCIFIO to have a common base for
plugin extensibility.
AppUtils: reinstate ImageJ-specific code

Specifically, the imagej.util.AppUtils.getBaseDirectory() now exists
again.
Explicitly declare plugin type for Commands

This will be required in the future, both to avoid confusion, and
because the SciJava plugin framework is more general than just ImageJ.

It will now be less likely for someone to accidentally declare a plugin
of an unintended type. Unfortunately, it is slightly less simple (since
"@Plugin" with no arguments is no longer legal), but I think the
tradeoff is worthwhile.

This change also cleans up imports and header whitespace in a few
places.
check-headers.pl: require blank line after package
Tool: change how certain attributes are declared

This uses the new extensible key/value pair list of @Plugin, rather than
relying on the alwaysActive and activeInAppFrame boolean attributes
which were tool-specific.
CommandInfo: fix canCancel to use Cancelable iface

There was no need to rely on a separate cancelable Plugin attribute,
since the Cancelable interface already signals whether the command can
be canceled.
Previewable: migrate to imagej.command package

The only thing that can be Previewable is a Command, on the only classes
that use it are in imagej.command and imagej.core.commands, so it really
belongs in imagej.command rather than in the base imagej package.
FileObject: tweak javadoc and comments
ImageJPlugin: update javadoc for SciJava Common
Merge branch 'scijava-plugins'

This branch migrates the ImageJ plugin framework to SciJava Common.

It will now be available for use not only with ImageJ-based
applications, but with all SciJava-based code. In particular, the SCIFIO
project (http://loci.wisc.edu/software/scifio) will use it rather than
providing its own plugin and/or service framework.