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.
The following should all have docstrings.