Documentation

This is used as an intermediate type between deciding how to call a program
and actually doing it. This provides the opportunity to the caller to
adjust how the program will be called. These invocations can either be run
directly or turned into shell or batch scripts.

Like the unix xargs program. Useful for when we've got very long command
lines that might overflow an OS limit on command line length and so you
need to invoke a command multiple times to get all the args in.

It takes four template invocations corresponding to the simple, initial,
middle and last invocations. If the number of args given is small enough
that we can get away with just a single invocation then the simple one is
used:

$ simple args

If the number of args given means that we need to use multiple invocations
then the templates for the initial, middle and last invocations are used: