Document All The Things (At Once)

This should be enough to get us by for now.

I'm going to make it a hard requirement from now on that pull requests contributing significant new functionality come with documentation.
This is not what `imap` does.  `imap` stands for "index map", and it's purpose is to be the "alternate" (left) map function for right-leaning bifunctors (whose right map function is just `fmap`).  It's used in this capacity by `IxState`, `IxStore`, etc.