Combines serialization from Model with the Observer pattern
Override Model.clone() to handle observers
Override Model.instance() to account for unserializable data.
Remove unserializable instance attributes.
Restores unserializable instance attributes.
Saves state to a file. Overrides the base method.
Hides internal observable attributes when serializing.
Override Model.set_param() to handle notification