Continute implementing better-intent-dispatching on top of better-intent-dispatching-2.

So far, this is just `Effect` and `perform`, with a bunch of new tests.
`calls` in a bunch of these is probably misnamed.