Add proof-of-concept compile time code generator

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Generate sources even in Eclipse, but only with a full build

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Generate the sources into target/generated-sources/from-template/

It is much better not to conflate generated sources with non-generated
sources. We employ the 'add-sources' goal of the build-helper plugin.

For Eclipse, happily, m2e already has support for imitating the workings
of the build-helper plugin. The support is on the m2e marketplace;
during the import of the Maven project, m2e will suggest to install it.
If it was imported previously, right-clicking on the error message will
suggest to install it, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Split code generation script into its own file

This keeps the POM easier to understand, while providing the actual code
generation logic within the project itself.
Remove trailing slashes from directory properties

Maven does not typically include the trailing slash in properties that
configure a directory path. So let's not do that here either.
Move the template files into src/main/templates/

Suggested by Curtis Rueden.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge pull request #2 from imagej/generated-sources

Add proof-of-concept compile time code generator
Remove unused OpInfo struct

I thought it would be needed for op matching, but it never was.
Remove unused FunctionTask class

Thanks to the miracle of SCM tools, we can resurrect it later if needed.
Parallel: clarify javadoc

Clarify that the op implementing the Parallel interface will spawn
multiple threads -- *not* that the Parallel op is intended to be *used*
simultaneously from multiple threads. (That would be a Threadable op.)
Rename threading package to chunker

The naming scheme we settled on is to use imagej.ops.<foo>,
where <foo> matches the name of the ops being implemented.
Simplify chunker op class names

The ChunkExecutor has been renamed to Chunker, to match the naming
convention that op interfaces match the name of their operation.

The ChunkExecutable has been renamed to Chunk, since it is shorter and
matches the naming of Chunker.

A Chunker executes Chunks of code! So nice! ;-)
Add Threadable interface

See: https://github.com/imagej/imagej-ops/issues/5
Parallel: flesh out the javadoc
Chunk: improve javadoc
Function: tweak javadoc
Function: implement the Threadable interface
Chunker: improve javadoc

Now it is consistent with the other base interfaces for ops.
Use Chunker.NAME constant where appropriate