Convert WorkflowOp to Fixplate.

Partial fix for #35.

The main practical benefit at the moment is that it allows us to unify
Workflows and Pipelines.

There is a bunch of renaming:

* WorkflowOp                           → WorkflowF
* Term[WorkflowOp]                     → Workflow
* Term[WorkflowOp] => Term[WorkflowOp] → WorkflowOp
* WorkflowOp.workflow                  → Workflow.task
* someOp                               → $some

Also,

* `Workflow` case class constructors are now non-private, for the `Traverse`
  impl as well as for `deleteUnusedFields` and `rewrite` (which currently needs
  to return the same type that was given to it, not a Term) and
* IdHandling is a bit more strict (but makes one property test hard
  to implement correctly, so it’s marked pending).
Yeah, I hemmed and hawed briefly. In the end, I figured we’re trying to remove the distinction between the different operations and make it possible for users to just think “these are the steps”, so distinguishing between pipelines and non-pipelines wasn’t important.

I’m less certain about `$foldLeft` and `$join` (and eventually, $fork) that have a different nature, but went with consistency for now (also, it’s easier to later rename all instances of `$foldLeft` than to rename _some_ instances of `foldLeft`).