ServiceHelper: load one instance of child ifaces

When the ServiceHelper is provided a class list (e.g. when a Context is
created using a class list), if a specified class is an interface, then
services are loaded for all child interfaces as well.

This will allow granular, extensible context initialization. For
example, if the Foo library creates a FooService class and all its
service interfaces extend FooService, then new Context(FooService.class)
will create a context that contains an implementation for each extension
of FooService.

To mitigate the propagation of services in a context, only the first
implementation for a given service class is loaded.
Added ScijavaService

Created a ScijavaService class and updated all scijava-common services
to extend it.

This allows for granular selection of all scijava-common services during
Context creation, without necessitating an explicit list.

Updated Context creation unit tests as appropriate.
ClassUtils: add getLeafInterface methods
ServiceHelper: load all leaves when given an iface