Inject context and service parameters

This change allows services (and contexts, too) to be declared as
instance fields annotated with @Parameter.

They can then be automatically populated by calling
Context#inject(Object). In the case of objects which extend
AbstractContextual, it also works to call
Contextual#setContext(Context).

This capability will allow a great reduction in the number of calls to
Context#getService(Class). Right now, both ImageJ2 and SCIFIO call
getService all over the place, but it makes eminently more sense to use
this new injection mechanism, which guarantees the presence of required
services at injection time, rather than potentially seeing
NullPointerExceptions later when getService(...).doSomething() is
actually used.
Add tests for @Parameter injection mechanism

We want to make sure that *any* class which has @Parameters of type
org.scijava.service.Service or org.scijava.Context has those parameters
populated with the context's associated values, when
Context#inject(Object) is called on it. We also want to make sure that
*if* the object implements the Contextual interface, the result is
exactly the same when calling Contextual#setContext(Context).
Optional: tweak javadoc