much improved coverage and a few minor fixes in fixplate

Including coverage for essentially everything except for the morphisms
and a few odds and ends.

Fixes a handful of methods which did not work as advertised, and a couple of
type class instances which didn't seem to be usable as typed.

Note: a couple of tests are failing because I could not determine what the correct result should be.
From the types, `transformChildren2` is a generalization on `transformChildren` that allows you to transform the values in the functor to values of a different type (whereas `transformChildren` keeps the type the same), similar to `holes`, `holes2`. In other places the naming convention `0` is used to indicate the most powerful version from which all others can be derived. Probably a historical artifact why that's not the case here and why they have separate implementations (likely translated from Haskell).