Documenting (new) assumptions

For now I have only pushed the infrastructure to document the assumptions.  I
had to do a little class hackery to make things work the way I wanted with
help().  The main disadvantage that I can think of this so far is that it
breaks picklability (I haven't tested if it works with dill yet).

I'll ping here when I have the docstrings written for the assumptions.
Ideally, I'd like to add even more infrastructure so that we can not only
write documentation in plain English, but also automatically include in the
documentation all the facts relating to each assumption, so that people can
see *exactly* what facts are used to define each assumption.