Add logic to compromise on ship performance if configured parts can't give performance we want
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.