Assign parts to rooms
Replace deprecated has_key method

This patch replaces the deprecated 'has_key' method for dictionaries
and uses the 'in' keyword instead.
Use Json for configuration files

This patch converts the current configuration files to json and uses
the python json library to parse the them. Json is a standard format
and as such already has many encoders and decoders available. This
option also leaves room for a schema validation using something like
jsonschema.
Use duck typing over strict type verifcation

The json library uses unicode strings over standard ascii strings and
thus strict type checking against strings will not work. This patch
removes those checks as well as other type checking as Python
generally uses the duck typing strategy over strict type verification.

In these cases, a type error represents a schema error and should fail
loudly. In the future, schema checks for the configuration files will
provide a better system to validate the configuration files.
Add full schema validation for configuration data

This patch uses jsonschema to validate the configuration data. By
preprocessing the configuration data using a structural analysis,
common issues such as type definitions and key presence can be checked
against a definitive reference with intelligent error messages.
Remove initialization globals

This patch removes the initialization variables and provides a more
Pythonic initialization mechanism. As the scripts are executed during
the import, it's sufficient to run the initialization functions in the
relevant scripts instead of relying on global initialization
variables.