The main changes are as follows:
- Instead of passing dictionaries to an algorithm function, lists of
`matching.Player` instances must be created for the two matching parties.
- Each of these instances have a few attributes but, most importantly, they take
a name (this should be unique to the party) and a `list` (or `tuple`) ranking
their preferences of the names of the other party's members.
- With these lists of `Player` instances, each type of matching game now has its
own solver class (e.g. the hospital-resident assignment problem uses
`matching.HospitalResident`) with various methods to solve the game and then
check the stability/validity of a matching.
Further details given in new `README.rst`.