Spelling out what is public in each module helps to futureproof the
project, and allows the main script to import the relevant names without
contravening best practices.
Buyer was missing from the main script's interface, despite being used
to call Solve. This has been fixed.
In order to move remaining enumerations into other files, dependencies
in this file need to be moved as well.
The folder is named "objects" because "types" is taken as a name.