Add unary + and - for depth changes

Not actually used yet, but allows indication of depth changes.
Enforce indications of iteration

Zapy pipelines must now indicate when depth changes occur. Since the
author has to consciously decide to use implicit iteration, it is not
much extra work for them to explcitly note it in the chain of tasks.

Notably, this allows input ports to have their complete type inferred,
meaning it should never be required to indicate types, except in
activities.