Set provides synchronized read+write access to the Model data via argument to
the given closure.
The changed flag is automatically set true after the closure has been called.
Model defines a singleton for global data shared by all consuming packages.
The instance variable of this type is private, so consumers must use one of
the package's exported functions to access or modify its content, which
provide automatic synchronization.
Get safely returns the model's changed flag and a copy of the Model data (as
it was defined when Get was called).
The changed flag is automatically set false after reading.