Improve context service loading

Modifies the ServiceHelper so that when provided explicit Interfaces, all child Services are loaded.

Also provides a new ScijavaService interface, which all Scijava-common services now extend. This allows creation of a context such as: new Context(ScijavaService.class) to automatically include all scijava-common services.

Given the recursive loading nature of these changes, to avoid loading unnecessary services, a service will only be loaded now if an implementation doesn't already exist.