OpService: make run more tolerant

When passing an argument list with a different number of arguments than
the number of module inputs, do not fail, but rather do our best.

In particular, this is nice if you want to pass an empty list of
arguments with a Module whose inputs have already been assigned.
OpService: tweak javadoc
OpService: flag as an ImageJService

This ensures the OpService gets added to the context by default
when "new Context(ImageJService.class)" is used to create a new
ImageJ-centric application context.
OpService: minor refactor for readability
OpService: simplify how ops are run

Now we *always* populate the module manually rather than relying on a
ModuleService#run method to do it for us. That way, we can avoid using
that method and instead just call Module#run() directly. This avoids:

A) spawning a new thread, which we then immediately wait to join; and
B) publishing a bunch of module execution events to the event service.

It may be necessary to move back to the ModuleService#run approach later
if we want pre- and post-processing, or we want event publication, but
for now it is simpler to just call run() directly for ops.