Remove field that is no longer needed.

I included that field to handle a case in the Constraints class where constraint_satisfied is called and there is not a constraint on the two variables passed to it. It would just return True in that case. Now it raises a ValueError, so this field isn't needed.
Clarify documentation and use better variable names.
Update documentation to include type information.

If this makes comments too big, you can configure code folding in PyCharm by going into settings, searching for "code folding", and checking the box that says "documentation comments." Now just go to a file, right click, then go to Folding->Collapse All then right click again and do Folding->Expand All.