PunchCardModel

Added the PunchCardModel interface, stating the added responsibilities
of a model. Used by the GUI.