The hg-core crate has a partially-formed concept of "operation",
represented as structs with constructors and a run method.
Each struct’s contructor takes different parameters,
and each run has a different return type.
Constructors typically don’t do much more than store parameters
for run to access them.
There was a comment about adding an Operation trait
when the language supports expressing something so general,
but it’s hard to imagine how operations with such different APIs
could be used in a generic context.
This commit starts removing the concept of "operation",
since those are pretty much just functions.