Secondarily, I changed the term for game settings from 'properties' to
'settings' - 'properties' is so overused.

Primarily, the initial configuration is now held in a class instance
instead of global static, and need to be passed explicitly to the
modules to be configured (if a module CookieJar requires many settings,
it can define its own CookieJar.Settings class, and GameConfiguration
receives a factory method getCookieJarSettings() creating the required
instance). The thinking is that this way configuration ties between
modules become explicit; plus in most cases the configuration values
aren't needed explicitly at runtime, so there is no point in keeping the
original values around.