generate.groovy: simplify code path
generate.groovy: dump stack trace upon failure

This is useful to understand where something went wrong in the script.
generate.groovy: remove unused class
generate.groovy: tweak documentation
generate.groovy: remove unneeded type declarations
generate.groovy: add a couple of comments

Let's mark each section of the parser code appropriately.
generate.groovy: avoid unneeded array

Rather than allocating a 2-element array called "pair",
we can just use two variables: key and value.
generate.groovy: trim keys immediately
generate.groovy: handle whitespace more robustly

In particular, always handle tabs and newlines in addition to only
spaces. This is particularly important for proper handling of multi-line
values which are lists and maps.
generate.groovy: use tabs for indentation

This is more consistent with all the Java code.
Organize imports
Autogenerate base op interfaces
Use autogenerated base interfaces

This migrates all the ops to use the autogenerated base interfaces of
net.imagej.ops.Ops, where applicable.

Note that in some cases, there is still an interface with the same name
in its respective package which extends the base interface -- e.g.,
net.imagej.ops.chunker.Chunker extends net.imagej.ops.Ops.Chunker. The
reason is that the base interfaces exist _only_ to provide the NAME and
optional ALIASES, as well as to offer a type-safe anchor for concrete
ops. If you want anything fancier, like an interface that defines
additional methods, and/or uses generic parameters, then it is advised
to define that interface manually in the appropriate package as well.

In other cases, the previous base interface became wholly redundant and
was hence removed in favor of the one in net.imagej.ops.Ops.