Switch states to use dicts as internal storage instead of sets, and to prefer
storing multivalent propositions as evaluated high-level values instead of subproposition
values, in order to make things more intuitive and possibly faster (at least in
the case of an explicit state strategy).   Also commented a
lot and added in a bunch of error checking (which was made easier by the
aforementioned changes).  Still a work in progress.